分析事物時,發現了共性內容,就出現向上抽取。會有這樣一種特殊情況,就是方法功能宣告相同,但方法功能主體不同。那麼這時也可以抽取,但只抽取方法宣告,不抽取方法主體。那麼此方法就是乙個抽象方法。
比如我們要宣告乙個人類class,人類包含很多種,美國人和中國人。那麼人類肯定會說話,但是說的是英語還是漢語需要具體的看是那種人,因為這個人類class就可以宣告為抽象類,宣告乙個說話的抽象方法,美國人和中國人分別繼承然後重寫說話的犯法實現自己的說話方式。
抽象類的定義格式
a:抽象方法定義的格式:
a:public abstract 返回值型別 方法名(引數);
抽象類定義的格式:
abstract class 類名 }/
定義android類,繼承開發人員類
重寫抽象方法
/
public class android extends develop}/
測試抽象類
建立他的子類的物件,使用子類的物件呼叫方法
/public class test
}抽象類特點
a:抽象類的特點
a:抽象類和抽象方法都需要被abstract修飾。抽象方法一定要定義在抽象類中。
b:抽象類不可以直接建立物件,原因:呼叫抽象方法沒有意義。
c:只有覆蓋了抽象類中所有的抽象方法後,其子類才可以建立物件。否則該子類還是乙個抽象類。
之所以繼承抽象類,更多的是在思想,是面對共性型別操作會更簡單。
abstract class a
class a2 extends a
public void func2(){}
}abstract class a3 extends a
//public abstract void func2();//func2相當於被繼承下來
抽象類的設計思想 a:抽象類的設計思想
a:抽象類的作用:繼承的體系抽象類,強制子類重寫抽象的方法
抽象員工:
規定乙個方法,work工作
ee員工,android員工
develop類 抽象類
abstract work();
|————-
| |
ee android //是我開發的一員必須工作
work(){} work(){}
抽象類的細節
a:抽象類一定是個父類?
是的,因為不斷抽取而來的。
b:抽象類中是否可以不定義抽象方法?
是可以的,那這個抽象類的存在到底有什麼意義呢?不讓該類建立物件,方法可以直接讓子類去使用
(介面卡設計模式)
/抽象類,可以沒有抽象方法,可以定義帶有方法體的方法
讓子類繼承後,可以直接使用
/
public abstract class animal
}public class cat extends animal
public class test
}c:抽象關鍵字abstract不可以和哪些關鍵字共存?
1:private:私有的方法子類是無法繼承到的,也不存在覆蓋,
而abstract和private一起使用修飾方法,abstract既要子類去實現這個方法,
而private修飾子類根本無法得到父類這個方法。互相矛盾。
/抽象類,可以沒有抽象方法,可以定義帶有方法體的方法
讓子類繼承後,可以直接使用
java之抽象類
1 抽象類概念 抽象類前使用abstract關鍵字修飾,則為抽象類 2 抽象類的應用場景 a 在某些情況下,乙個父類只知道其子類應該包含某些方法,但是不能確切的知道如何實現這些方法 b 從多個具有相同特徵的類中抽象出乙個抽象類,以這個類作為子類的模板,從而避免了子類設計的隨意性 3 作用 限制規定子...
java入門之抽象類
抽象類 抽象類的作用類似模板供設計者依據他的格式來修改並建立新類,他不能事例化物件,包含乙個或多個抽象方法 用abstract修飾的方法 同樣,包含抽象方法的類必須是抽象類.抽象類用abstract修飾.抽象類只能被繼承,且繼承他的子類必須將所有父類的抽象方法全部實現.抽象方法 抽象方法用abstr...
java基礎之 抽象類
抽象類 抽象方法只有宣告,沒有實現時,該方法就是抽象方法,需要被abstract修飾,抽象方法必須定義在抽象類中,抽象類需要被abstract修飾。抽象類不可以被例項化。抽象類必須被其子類重寫後,該子類才可以例項化。否則這個子類還是抽象類。抽象類也有構造方法,用於給子類物件進行初始化 抽象類可以不定...