1. 程式人生 > >Java的抽象類、多型

Java的抽象類、多型

1.抽象類:

  • 只是約定了了類的抽象行為,沒有具體的實現相應的行為。

2.場合:

  • 此類不適合建立物件,使用子類的物件
  • 此類,為所有子類提供了模板

3.語法:

Abstract class 抽象類{

    類中的成員;

    抽象的方法;

}

4. 使用注意:

  • 抽象類不能建立物件;
  • 必須通過  子類繼承使用;
  • 普通的子類必須 實現(重寫)父類中的所有抽象方法;抽象的子類除外;
  • 構造器不能是抽象;
  • abstract 不能與 private ,static ,final一起用;
  • 抽象方法可以定義也可以不定義。

- -- - - - - - - - - - - - -  -- - -- - - - - - - - - - - - -  -- - -- - - - - - - - - - - - -  -- - -- - - - - - - - - - - -

抽象方法:沒有具體實現的方法。

- -- - - - - - - - - - - - -  -- - -- - - - - - - - - - - - -  -- - -- - - - - - - - - - - - -  -- - -- - - - - - - - - - - -

  • 介面:是一組功能的封裝,是一組公共的規則。
  • 語法:訪問修飾符 interface 介面名{

常量;

抽象方法();

Default預設方法(){}

Static 靜態方法(){}

靜態內部型別;內部類,介面,列舉

}

1.注意:

  • 介面是不能建立物件的;
  • 實現類 實現介面;普通的實現類 必須實現介面中的所有抽象方法;(抽象實現類除外);
  • 實現類 可以實現多個介面中的功能;

  • 介面 可以繼承介面,可以多繼承;
  • 介面中的成員:都是public,抽象方法都是abstract;常量是public static final。

2.介面中 有同名的方法:

 

抽象方法:實現類統一 重寫;

- - -- - - - - - - - - - - - -  - -- - -- - - - - - - - - - - - -  - -- - -- - - - - - - - - - - - -  - -- - -- - - - - - - - - - - -

速度

①都不能建立物件;

②都存在抽象方法;

③都是子類或實現類繼承或實現來使用;

④普通的子類和實現類必須重寫抽象類或介面中的所有抽象方法;(抽象子類或實現類除外)

  1. 普通的子類 和 實現類 必須重寫 抽象類 或介面中的所有抽象方法;抽象子類或實現類除外。
  2. 不同:

①子類只能 繼承一個抽象類;實現類可以 實現多個介面;

②類是單一繼承;介面可以多繼承。

  1. 介面:一組規則。同一應用程式,降低耦合連線。不同應用程式,連線的橋樑。
  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

- - -- - - - - - - - - - - - -  - -- - -- - - - - - - - - - - - -  - -- - -- - - - - - - - - - - - -  - -- - -- - - - - - - - - - - -

 

  1. UML:建模語言。
  2. 類圖:
  • 泛化:繼承(extends)
  • 實現:介面 和 實現類(implements)
  • 依賴:使用的關係。

語法:被依賴的類 作為 區域性變數(引數)。

  • 關聯:擁有。(三種關係:一對一、一對多、多對多)

特殊的關聯:

強關聯:

聚集(聚合):整體 區域性的關係。區域性離開整體可以獨立存在。

語法:成員變數。    強聚合: 

組合:整體 區域性的關係。區域性離開整體不能獨立存在。