類與接口的關系及區別


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 一定是先繼承后實現

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM