Java的抽象類、多型
1.抽象類:
- 只是約定了了類的抽象行為,沒有具體的實現相應的行為。
2.場合:
- 此類不適合建立物件,使用子類的物件
- 此類,為所有子類提供了模板
3.語法:
Abstract class 抽象類{
類中的成員;
抽象的方法;
}
4. 使用注意:
- 抽象類不能建立物件;
- 必須通過 子類繼承使用;
- 普通的子類必須 實現(重寫)父類中的所有抽象方法;抽象的子類除外;
- 構造器不能是抽象;
- abstract 不能與 private ,static ,final一起用;
- 抽象方法可以定義也可以不定義。
- -- - - - - - - - - - - - - -- - -- - - - - - - - - - - - - -- - -- - - - - - - - - - - - - -- - -- - - - - - - - - - - -
抽象方法:沒有具體實現的方法。
- -- - - - - - - - - - - - - -- - -- - - - - - - - - - - - - -- - -- - - - - - - - - - - - - -- - -- - - - - - - - - - - -
- 介面:是一組功能的封裝,是一組公共的規則。
- 語法:訪問修飾符 interface 介面名{
常量;
抽象方法();
Default預設方法(){}
Static 靜態方法(){}
靜態內部型別;內部類,介面,列舉
}
1.注意:
- 介面是不能建立物件的;
- 實現類 實現介面;普通的實現類 必須實現介面中的所有抽象方法;(抽象實現類除外);
- 實現類 可以實現多個介面中的功能;
- 介面 可以繼承介面,可以多繼承;
- 介面中的成員:都是public,抽象方法都是abstract;常量是public static final。
2.介面中 有同名的方法:
抽象方法:實現類統一 重寫;
- - -- - - - - - - - - - - - - - -- - -- - - - - - - - - - - - - - -- - -- - - - - - - - - - - - - - -- - -- - - - - - - - - - - -
速度
①都不能建立物件;
②都存在抽象方法;
③都是子類或實現類繼承或實現來使用;
④普通的子類和實現類必須重寫抽象類或介面中的所有抽象方法;(抽象子類或實現類除外)
- 普通的子類 和 實現類 必須重寫 抽象類 或介面中的所有抽象方法;抽象子類或實現類除外。
- 不同:
①子類只能 繼承一個抽象類;實現類可以 實現多個介面;
②類是單一繼承;介面可以多繼承。
- 介面:一組規則。同一應用程式,降低耦合連線。不同應用程式,連線的橋樑。
- 抽象類:模板。
- - -- - - - - - - - - - - - - - -- - -- - - - - - - - - - - - - - -- - -- - - - - - - - - - - - - - -- - -- - - - - - - - - - - -
1.多型:
多型:
執行時多型;
package Day11; class Teacher{ String name; public void giveLesson() {} } class JavaTeacher extends Teacher{ String tattoo; public void sing() {} public void giveLesson() {System.out.println("講Java課");} } public class TestTeacher { public static void main(String[] args) { //父類引用 -》子類物件 JavaTeacher guofu = new JavaTeacher(); guofu.giveLesson(); System.out.println(guofu.name); } |
Person zhangsan = new Person();
2.特點:子類(實現類)中的獨特的功能被遮蔽了不能呼叫了。
3.型別轉換:向上型別轉換:子類 –》父類型別; 強轉
向下型別轉換:父類 –》子類型別;
4.instanceof 運算子:運算 某個 物件 是否是 介面型別;
是 --》true
不是—》false
- - -- - - - - - - - - - - - - - -- - -- - - - - - - - - - - - - - -- - -- - - - - - - - - - - - - - -- - -- - - - - - - - - - - -
- UML:建模語言。
- 類圖:
- 泛化:繼承(extends)
- 實現:介面 和 實現類(implements)
- 依賴:使用的關係。
語法:被依賴的類 作為 區域性變數(引數)。
- 關聯:擁有。(三種關係:一對一、一對多、多對多)
特殊的關聯:
強關聯:
聚集(聚合):整體 和 區域性的關係。區域性離開整體可以獨立存在。
語法:成員變數。 強聚合:
組合:整體 和 區域性的關係。區域性離開整體不能獨立存在。