摘要:繼承就是子類繼承父類的特征和行為,使得子類對象實例具有父類的實例域和方法,或子類從父類繼承方法,使得子類具有父類相同的行為。關鍵字在中,類的繼承是單一繼承,也就是說,一個子類只能擁有一個父類,所以只能繼承一個類。
概念
繼承是java面向對象編程技術的一塊基石,因為它允許創(chuàng)建分等級層次的類。
繼承就是子類繼承父類的特征和行為,使得子類對象(實例)具有父類的實例域和方法,或子類從父類繼承方法,使得子類具有父類相同的行為。
語法格式Java 中通過 extends 或 implement關鍵字可以申明一個類是從另外一個類或接口繼承而來的,一般形式如下:
class 父類 { } interface 接口{ } class 子類 extends 父類, implement 接口 { }
需要注意的是 Java 不支持類的多繼承,但支持接口的多繼承。
繼承的特性子類擁有父類非 private 的屬性、方法,實現了代碼復用。
本質上來說子類會繼承父類的所有屬性(包括private),只是私有屬性和方法無法直接使用。
子類可以擁有自己的屬性和方法,即子類可以對父類進行擴展。
子類可以用自己的方式實現父類的方法,即重寫/覆寫(Override)。
Java 的類繼承是單繼承,不支持多繼承,單繼承就是一個子類只能繼承一個父類,這是 Java 繼承區(qū)別于 C++ 繼承的一個特性。
提高了類之間的耦合性(繼承的缺點,耦合度高就會造成代碼之間的聯系越緊密,代碼獨立性越差)。
繼承關鍵字繼承可以使用 extends 和 implements 這兩個關鍵字來實現繼承,而且所有的類都是繼承于 java.lang.Object,當一個類沒有繼承的兩個關鍵字,則默認繼承object(這個類在 java.lang 包中,所以不需要 import)祖先類。
extends關鍵字在 Java 中,類的繼承是單一繼承,也就是說,一個子類只能擁有一個父類,所以 extends 只能繼承一個類。
implements關鍵字使用 implements 關鍵字可以變相的使java具有多繼承的特性,使用范圍為類繼承接口的情況,可以同時繼承多個接口(接口跟接口之間采用逗號分隔)。
public interface A { public void eat(); public void sleep(); } public interface B { public void show(); } public class C implements A,B { }super 與 this 關鍵字
super關鍵字:我們可以通過super關鍵字來實現對父類成員的訪問,用來引用當前對象的父類。
this關鍵字:指向自己的引用。
final關鍵字final 關鍵字聲明類可以把類定義為不能繼承的,即最終類;或者用于修飾方法,該方法不能被子類重寫.
構造器子類是不繼承父類的構造器(構造方法或者構造函數)的,它只是調用(隱式或顯式)。
如果父類的構造器帶有參數,則必須在子類的構造器中顯式地通過 super 關鍵字調用父類的構造器并配以適當的參數列表。
如果父類構造器沒有參數,則在子類的構造器中不需要使用 super 關鍵字調用父類構造器,系統(tǒng)會自動調用父類的無參構造器。
class SuperClass { private int n; SuperClass(){ System.out.println("SuperClass()"); } SuperClass(int n) { System.out.println("SuperClass(int n)"); this.n = n; } } class SubClass extends SuperClass{ private int n; SubClass(){ super(300); System.out.println("SubClass"); } public SubClass(int n){ System.out.println("SubClass(int n):"+n); this.n = n; } } public class TestSuperSub{ public static void main (String args[]){ SubClass sc = new SubClass(); SubClass sc2 = new SubClass(200); } } 輸出結果為: SuperClass(int n) SubClass SuperClass() SubClass(int n):200
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://systransis.cn/yun/73560.html
摘要:目錄介紹問題匯總具體問題好消息博客筆記大匯總年月到至今,包括基礎及深入知識點,技術博客,學習筆記等等,還包括平時開發(fā)中遇到的匯總,當然也在工作之余收集了大量的面試題,長期更新維護并且修正,持續(xù)完善開源的文件是格式的同時也開源了生活博客,從年 目錄介紹 00.Java問題匯總 01.具體問題 好消息 博客筆記大匯總【16年3月到至今】,包括Java基礎及深入知識點,Android技...
摘要:進階面試問題列表翻譯自,從屬于筆者的入門與工程實踐系列。只是單純的問題列表,可能較水,慎進。面向對象編程的基本理念與核心設計思想解釋下多態(tài)性,封裝性,內聚以及耦合。新版的中有哪些新特性介紹下的優(yōu)勢與缺陷。 Java 進階面試問題列表翻譯自Java developer interview questions: The hard part,從屬于筆者的Java入門與工程實踐系列。最近公司打...
摘要:但是單核我們還是要應用多線程,就是為了防止阻塞。多線程可以防止這個問題,多條線程同時運行,哪怕一條線程的代碼執(zhí)行讀取數據阻塞,也不會影響其它任務的執(zhí)行。 1、多線程有什么用?一個可能在很多人看來很扯淡的一個問題:我會用多線程就好了,還管它有什么用?在我看來,這個回答更扯淡。所謂知其然知其所以然,會用只是知其然,為什么用才是知其所以然,只有達到知其然知其所以然的程度才可以說是把一個知識點...
閱讀 1028·2021-09-26 09:55
閱讀 3591·2021-09-24 10:30
閱讀 1377·2021-09-08 09:36
閱讀 2559·2021-09-07 09:58
閱讀 610·2019-08-30 15:56
閱讀 776·2019-08-29 18:32
閱讀 3631·2019-08-29 15:13
閱讀 1848·2019-08-29 13:49