摘要:繼承就是子類繼承父類的特征和行為,使得子類對(duì)象實(shí)例具有父類的實(shí)例域和方法,或子類從父類繼承方法,使得子類具有父類相同的行為。關(guān)鍵字在中,類的繼承是單一繼承,也就是說(shuō),一個(gè)子類只能擁有一個(gè)父類,所以只能繼承一個(gè)類。
概念
繼承是java面向?qū)ο缶幊碳夹g(shù)的一塊基石,因?yàn)樗试S創(chuàng)建分等級(jí)層次的類。
繼承就是子類繼承父類的特征和行為,使得子類對(duì)象(實(shí)例)具有父類的實(shí)例域和方法,或子類從父類繼承方法,使得子類具有父類相同的行為。
語(yǔ)法格式Java 中通過(guò) extends 或 implement關(guān)鍵字可以申明一個(gè)類是從另外一個(gè)類或接口繼承而來(lái)的,一般形式如下:
class 父類 { } interface 接口{ } class 子類 extends 父類, implement 接口 { }
需要注意的是 Java 不支持類的多繼承,但支持接口的多繼承。
繼承的特性子類擁有父類非 private 的屬性、方法,實(shí)現(xiàn)了代碼復(fù)用。
本質(zhì)上來(lái)說(shuō)子類會(huì)繼承父類的所有屬性(包括private),只是私有屬性和方法無(wú)法直接使用。
子類可以擁有自己的屬性和方法,即子類可以對(duì)父類進(jìn)行擴(kuò)展。
子類可以用自己的方式實(shí)現(xiàn)父類的方法,即重寫/覆寫(Override)。
Java 的類繼承是單繼承,不支持多繼承,單繼承就是一個(gè)子類只能繼承一個(gè)父類,這是 Java 繼承區(qū)別于 C++ 繼承的一個(gè)特性。
提高了類之間的耦合性(繼承的缺點(diǎn),耦合度高就會(huì)造成代碼之間的聯(lián)系越緊密,代碼獨(dú)立性越差)。
繼承關(guān)鍵字繼承可以使用 extends 和 implements 這兩個(gè)關(guān)鍵字來(lái)實(shí)現(xiàn)繼承,而且所有的類都是繼承于 java.lang.Object,當(dāng)一個(gè)類沒(méi)有繼承的兩個(gè)關(guān)鍵字,則默認(rèn)繼承object(這個(gè)類在 java.lang 包中,所以不需要 import)祖先類。
extends關(guān)鍵字在 Java 中,類的繼承是單一繼承,也就是說(shuō),一個(gè)子類只能擁有一個(gè)父類,所以 extends 只能繼承一個(gè)類。
implements關(guān)鍵字使用 implements 關(guān)鍵字可以變相的使java具有多繼承的特性,使用范圍為類繼承接口的情況,可以同時(shí)繼承多個(gè)接口(接口跟接口之間采用逗號(hào)分隔)。
public interface A { public void eat(); public void sleep(); } public interface B { public void show(); } public class C implements A,B { }super 與 this 關(guān)鍵字
super關(guān)鍵字:我們可以通過(guò)super關(guān)鍵字來(lái)實(shí)現(xiàn)對(duì)父類成員的訪問(wèn),用來(lái)引用當(dāng)前對(duì)象的父類。
this關(guān)鍵字:指向自己的引用。
final關(guān)鍵字final 關(guān)鍵字聲明類可以把類定義為不能繼承的,即最終類;或者用于修飾方法,該方法不能被子類重寫.
構(gòu)造器子類是不繼承父類的構(gòu)造器(構(gòu)造方法或者構(gòu)造函數(shù))的,它只是調(diào)用(隱式或顯式)。
如果父類的構(gòu)造器帶有參數(shù),則必須在子類的構(gòu)造器中顯式地通過(guò) super 關(guān)鍵字調(diào)用父類的構(gòu)造器并配以適當(dāng)?shù)膮?shù)列表。
如果父類構(gòu)造器沒(méi)有參數(shù),則在子類的構(gòu)造器中不需要使用 super 關(guān)鍵字調(diào)用父類構(gòu)造器,系統(tǒng)會(huì)自動(dòng)調(diào)用父類的無(wú)參構(gòu)造器。
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); } } 輸出結(jié)果為: SuperClass(int n) SubClass SuperClass() SubClass(int n):200
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/73560.html
摘要:參考資料程序設(shè)計(jì)北大唐大仕零基礎(chǔ)學(xué)語(yǔ)言浙大翁愷面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言浙大翁愷在里面搜索可以查看和修改快捷鍵自動(dòng)補(bǔ)全代碼格式化簡(jiǎn)介歷史與一起發(fā)展萬(wàn)維網(wǎng)所有信息用鏈接連接起來(lái)靜態(tài)網(wǎng)頁(yè)動(dòng)態(tài)網(wǎng)頁(yè)的出現(xiàn)年開發(fā)工具包語(yǔ)法增加廣泛動(dòng)態(tài)編譯腳本 參考資料 Java程序設(shè)計(jì) - 北大 - 唐大仕 零基礎(chǔ)學(xué)Java語(yǔ)言 - 浙大 - 翁愷 面向?qū)ο蟪绦蛟O(shè)計(jì)——Java語(yǔ)言 - 浙大 - 翁愷 Ecl...
摘要:目錄介紹問(wèn)題匯總具體問(wèn)題好消息博客筆記大匯總年月到至今,包括基礎(chǔ)及深入知識(shí)點(diǎn),技術(shù)博客,學(xué)習(xí)筆記等等,還包括平時(shí)開發(fā)中遇到的匯總,當(dāng)然也在工作之余收集了大量的面試題,長(zhǎng)期更新維護(hù)并且修正,持續(xù)完善開源的文件是格式的同時(shí)也開源了生活博客,從年 目錄介紹 00.Java問(wèn)題匯總 01.具體問(wèn)題 好消息 博客筆記大匯總【16年3月到至今】,包括Java基礎(chǔ)及深入知識(shí)點(diǎn),Android技...
摘要:進(jìn)階面試問(wèn)題列表翻譯自,從屬于筆者的入門與工程實(shí)踐系列。只是單純的問(wèn)題列表,可能較水,慎進(jìn)。面向?qū)ο缶幊痰幕纠砟钆c核心設(shè)計(jì)思想解釋下多態(tài)性,封裝性,內(nèi)聚以及耦合。新版的中有哪些新特性介紹下的優(yōu)勢(shì)與缺陷。 Java 進(jìn)階面試問(wèn)題列表翻譯自Java developer interview questions: The hard part,從屬于筆者的Java入門與工程實(shí)踐系列。最近公司打...
摘要:但是單核我們還是要應(yīng)用多線程,就是為了防止阻塞。多線程可以防止這個(gè)問(wèn)題,多條線程同時(shí)運(yùn)行,哪怕一條線程的代碼執(zhí)行讀取數(shù)據(jù)阻塞,也不會(huì)影響其它任務(wù)的執(zhí)行。 1、多線程有什么用?一個(gè)可能在很多人看來(lái)很扯淡的一個(gè)問(wèn)題:我會(huì)用多線程就好了,還管它有什么用?在我看來(lái),這個(gè)回答更扯淡。所謂知其然知其所以然,會(huì)用只是知其然,為什么用才是知其所以然,只有達(dá)到知其然知其所以然的程度才可以說(shuō)是把一個(gè)知識(shí)點(diǎn)...
閱讀 1027·2021-09-26 09:55
閱讀 3573·2021-09-24 10:30
閱讀 1374·2021-09-08 09:36
閱讀 2558·2021-09-07 09:58
閱讀 609·2019-08-30 15:56
閱讀 774·2019-08-29 18:32
閱讀 3622·2019-08-29 15:13
閱讀 1847·2019-08-29 13:49