總結:類、接口、抽象類

1、類和類的關係:繼承 extends / 單繼承 / 單根繼承
-- 繼承的意義:爲了提高代碼的複用性,減少了代碼的編寫提高開發效率。

-- 方法重寫的意義:在不修改父類源碼的前提下,在子類中重寫業務,從此使用的就是重寫後的功能。

-- 要求子類的方法聲明和父類一樣,只要改方法體。

-- 有了繼承有了重寫就產生了多態,多態的意義:爲了統一程序的調用標準,標準就是父類。

-- 多態 也就是向上轉型/向上造型。

-- 向下造型的意義:很少用,相當於想要使用子類的特殊功能,還不如直接創建子類對象簡單。

-- class A extends B 

-- 其中,A和B都是類,A是子類,B是父類,A就擁有了B的所有功能(除了私有的和構造方法) 

-- 其他知識點:this 和super  ,構造方法,各種代碼塊...
2、類和接口關係:實現implements / 單實現 / 多實現
-- class A implements B,C

-- 其中,A是實現類,B和C是接口

-- 要求A 可以把 B 和C 接口裏的所有 抽象方法 都重寫掉,否則 A 就是抽象類

-- 接口不能創建對象

-- 接口裏沒有構造方法,接口裏都是常量,接口裏都是抽象方法
3、接口和接口關係:繼承extends / 單繼承 / 多繼承
-- 接口的多繼承的關係,打破了java單繼承的侷限性

-- interface A  extends  B,C

-- 其中,A B C 都是接口,A是子接口,同時擁有B和C接口裏的所有功能

-- class AImpl implements  A

-- 要求AImpl需要重寫A接口裏的所有方法(是包含B和C接口的所有方法),否則就是抽象類
4、接口和抽象類的區別!!!
-- 相同點:都是抽象層,都不能實例化                       

-- 不同點:

   -- 1、抽象類用abstract關鍵字描述,接口用interface

   -- 2、子類和抽象類之間是extends關係,實現類和接口之間是implements關係

   -- 3、抽象類中 可以  有構造方法 ,接口裏 不能 出現 構造方法

   -- 4、抽象類裏可以有 變量,接口裏沒有變量全都是靜態的常量

   -- 5、接口裏定義常量的語法:public static final String NAME="jack",會爲變量自動拼接public static final

   -- 6、抽象類裏 可以有普通方法  也可以有 抽象方法,接口都是抽象方法

   -- 7、抽象類和子類之間是繼承關係,而且java中,只支持單繼承

   -- 8、接口突破了java單繼承的侷限性,因爲接口可以多繼承也可以多實現,甚至可以繼承的同時多實現

   -- 9、接口的複雜用法

       -- 多繼承: interface A  extends  B,C  其中A是子接口,同時擁有自己的和BC的功能

       -- 多實現: class AImpl implements M,N,O,P 其中AImpl是實現類,需要同時重寫MNOP的所有抽象方法,否則就是一個抽象類

       -- 繼承的同時多實現: class AImpl extends Object implements M,N 一定是先繼承後實現
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章