java基礎之挖坑(2.3)--接口、多態

1.接口

1、接口中可以定義變量,但是變量必須有固定的修飾符修飾,public static final 所以接口中的變量也稱之爲常量,其值不能改變。
2、接口中可以定義方法,方法也有固定的修飾符,public abstract
3、接口不可以創建對象。
4、子類必須覆蓋掉接口中所有的抽象方法後,子類纔可以實例化2。否則子類是一個抽象類。

2.接口和抽象類的區別

1.共性:
不斷的進行抽取,抽取出抽象的,沒有具體實現的方法,都不能實例化(不能創建對象)
2.區別1:與類的關係
    (1)類與接口是實現關係,而且是多實現,
       類與抽象類是繼承關係,Java中的繼承是單一繼承,多層繼承,一個類只能繼承一個父類,但是可以有爺爺類。
(2)區別2: 成員
                a.成員變量
                    抽象類可以有成員變量,也可以有常量
                    接口只能有常量,默認修飾符public static final
                b.成員方法
                        抽象類可以有抽象方法,也可以有非抽象方法
                        接口只能有抽象方法,默認修飾符 public abstract
                c.構造方法
                        抽象類有構造方法,爲子類提供
                        接口沒有構造方法 

3.多態

A.父類類型  變量名 = new 子類類型();
變量名.方法名();

  B.多態的前提:
      子父類的繼承關係
     方法的重寫
     父類引用指向子類對象
  動態綁定:運行期間調用的方法,是根據其具體的類型

  C.多態的成員特點:
         成員變量  編譯時看的是左邊,運行時看的左邊
         成員方法  編譯時看的是左邊,運行時看右邊
          靜態方法  編譯時看的是左邊,運行時看的也是左邊
 
  編譯時看的都是左邊,運行時成員方法看的是右邊,其他(成員變量和靜態的方法)看的都是左邊

4.多態中的向上轉型和向下轉型

向下轉型:一個已經向上轉型的子類對象可以使用強制類型轉換的格式,將父類引用轉爲子類引用,這個過程是向下轉型。
      如果是直接創建父類對象,是無法向下轉型的
使用格式:
子類類型 變量名 = (子類類型) 父類類型的變量;
如:Student stu = (Student) p;  //變量p 實際上指向Student對象

多態的優缺點
          優點:可以提高可維護性(多態前提所保證的),提高代碼的可擴展性
          缺點:無法直接訪問子類特有的成員

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章