摘要:上學(xué)學(xué)的完全沒(méi)印象,基礎(chǔ)爛的不行,最近項(xiàng)目主要是改,有時(shí)間就看了一下這本書(shū)補(bǔ)一下基礎(chǔ)在寫(xiě)項(xiàng)目時(shí),老用到繼承,但是對(duì)其了解不深,會(huì)用但是不理解概念繼承是面向?qū)ο缶幊碳夹g(shù)的一塊基石,因?yàn)樗试S創(chuàng)建分等級(jí)層次的類。
上學(xué)學(xué)的完全沒(méi)印象,Java基礎(chǔ)爛的不行,最近項(xiàng)目主要是改bug,有時(shí)間就看了一下Head First Java這本書(shū)補(bǔ)一下基礎(chǔ)
在寫(xiě)項(xiàng)目時(shí),老用到Java繼承,但是對(duì)其了解不深,會(huì)用但是不理解
概念繼承是java面向?qū)ο缶幊碳夹g(shù)的一塊基石,因?yàn)樗试S創(chuàng)建分等級(jí)層次的類。
繼承就是子類繼承父類的特征和行為,使得子類對(duì)象(實(shí)例)具有父類的實(shí)例域和方法,或子類從父類繼承方法,使得子類具有父類相同的行為。
語(yǔ)法格式Java 中通過(guò) extends繼承,implement實(shí)現(xiàn)接口,一般形式如下:
class 父類 { } interface 接口{ } class 子類 extends 父類, implement 接口 { }
需要注意的是 Java 不支持類的多繼承,但可以實(shí)現(xiàn)多個(gè)接口。
繼承的特性子類擁有父類非 private 的屬性、方法,實(shí)現(xiàn)了代碼復(fù)用。
本質(zhì)上來(lái)說(shuō)子類會(huì)繼承父類的所有屬性(包括private),只是私有屬性和方法無(wú)法直接使用。
子類可以擁有自己的屬性和方法,即子類可以對(duì)父類進(jìn)行擴(kuò)展。
子類可以用自己的方式實(shí)現(xiàn)父類的方法,即重寫(xiě)/覆寫(xiě)(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
在 Java 中,類的繼承是單一繼承,也就是說(shuō),一個(gè)子類只能擁有一個(gè)父類,所以 extends 只能繼承一個(gè)類。
implements
使用 implements 關(guān)鍵字可以變相的使java具有多繼承的特性,使用范圍為類繼承接口的情況,可以同時(shí)繼承多個(gè)接口(接口跟接口之間采用逗號(hào)分隔)。
public interface A { public void eat(); public void sleep(); } public interface B { public void wolf(); } public class C implements A,B { }super this與final 關(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)鍵字聲明類可以把類定義為不能繼承的,即最終類;或者用于修飾方法,該方法不能被子類重寫(xiě).
實(shí)現(xiàn)繼承A.java
public class A { public int num = 1; public int getNum() { return num; } }
B.java
public class B extends A { }
Main.java
public class Main { public static void main(String[] args) { B b1 = new B(); System.out.println("b1.num = " + b1.num);//通過(guò)訪問(wèn)數(shù)據(jù)域得到num的值 System.out.println("b1.getNum return " + b1.getNum());//通過(guò)get方法得到num的值 } }
結(jié)果:
b1.num = 1
b1.getNum return 1
可以發(fā)現(xiàn)我們沒(méi)有在class B中沒(méi)有定義任何數(shù)據(jù)域和方法,但是子類B可以繼承父類A所有可以訪問(wèn)的數(shù)據(jù)域和方法。
回顧(到底上學(xué)的時(shí)候?qū)W的什么)想想上學(xué)時(shí)候老師都講了點(diǎn)啥,完全沒(méi)有印象,看了之前的U盤(pán)
發(fā)現(xiàn),上學(xué)時(shí)老師把一些知識(shí)點(diǎn)給我們總結(jié)成了Word,發(fā)給了我們,但是一點(diǎn)印象都沒(méi)有,甚至不知道是干什么的。
潘老師,總是和我們說(shuō)工程和科學(xué)之間的區(qū)別,感覺(jué)有了更深得體會(huì)。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/77596.html
摘要:中很多特性或者說(shuō)知識(shí)點(diǎn)都是和面向?qū)ο缶幊谈拍钕嚓P(guān)的。在多線程中內(nèi)容有很多,只是簡(jiǎn)單說(shuō)明一下中初步使用多線程需要掌握的知識(shí)點(diǎn),以后有機(jī)會(huì)單獨(dú)再詳細(xì)介紹一些高級(jí)特性的使用場(chǎng)景。 寫(xiě)這篇文章的目的是想總結(jié)一下自己這么多年來(lái)使用java的一些心得體會(huì),主要是和一些java基礎(chǔ)知識(shí)點(diǎn)相關(guān)的,所以也希望能分享給剛剛?cè)腴T(mén)的Java程序員和打算入Java開(kāi)發(fā)這個(gè)行當(dāng)?shù)臏?zhǔn)新手們,希望可以給大家一些經(jīng)...
摘要:自制力好的人,估計(jì)在保存后會(huì)翻出來(lái)看兩眼,過(guò)幾天又忘得一干二凈了。多思考學(xué)會(huì)思考,養(yǎng)成多思考的習(xí)慣。以項(xiàng)目來(lái)驅(qū)動(dòng)自己學(xué)習(xí),整個(gè)過(guò)程將會(huì)有趣得多。后語(yǔ)以上就是我對(duì)自學(xué)的幾點(diǎn)建議,希望對(duì)你們有幫助。 微信公眾號(hào):一個(gè)優(yōu)秀的廢人如有問(wèn)題或建議,請(qǐng)后臺(tái)留言,我會(huì)盡力解決你的問(wèn)題。 showImg(https://segmentfault.com/img/remote/1460000018208...
摘要:實(shí)現(xiàn)多態(tài)的三個(gè)必要條件繼承在多態(tài)中必須存在有繼承關(guān)系的子類和父類。參考面試題解惑系列九繼承多態(tài)重載和重寫(xiě)面向?qū)ο笕筇匦苑庋b,繼承,多態(tài)以及抽象接口的介紹 版權(quán)聲明:本文由吳仙杰創(chuàng)作整理,轉(zhuǎn)載請(qǐng)注明出處:https://segmentfault.com/a/1190000009141566 1. 面向?qū)ο缶幊痰娜筇匦?Java 面向?qū)ο缶幊逃腥筇匦裕悍庋b、繼承、多態(tài)。 1.1 封裝...
摘要:快速了解繼承在的繼承關(guān)系里子類可以從獲取父類的所有的公共和受保護(hù)成員字段方法和內(nèi)部類。阻止繼承有些情況下,我們可能不希望子類覆蓋父類的方法,這時(shí)候,用關(guān)鍵字修飾方法即可實(shí)現(xiàn)該目的。 和現(xiàn)實(shí)世界中:子女可以繼承父母的一些特征(如:基因)、財(cái)產(chǎn)等一樣。OOP 中也有提供類似的特性,一個(gè)類完全可以從其它類里獲得一些屬性和方法,而不需要我們自己重新定義。這種特性簡(jiǎn)單但強(qiáng)大 (Simple an...
摘要:眾多面向?qū)ο蟮木幊趟枷腚m不盡一致,但是無(wú)論哪種面向?qū)ο缶幊陶Z(yǔ)言都具有以下的共通功能。原型編程以類為中心的傳統(tǒng)面向?qū)ο缶幊?,是以類為基礎(chǔ)生成新對(duì)象。而原型模式的面向?qū)ο缶幊陶Z(yǔ)言沒(méi)有類這樣一個(gè)概念。 什么是面向?qū)ο??這個(gè)問(wèn)題往往會(huì)問(wèn)到剛畢業(yè)的新手or實(shí)習(xí)生上,也是往往作為一個(gè)技術(shù)面試的開(kāi)頭題。在這里我們不去談如何答(fu)好(yan)問(wèn)(guo)題(qu),僅談?wù)勎宜斫獾拿嫦驅(qū)ο蟆?從歷...
閱讀 2072·2023-04-25 16:53
閱讀 1475·2021-10-13 09:39
閱讀 637·2021-09-08 09:35
閱讀 1669·2019-08-30 13:03
閱讀 2151·2019-08-30 11:06
閱讀 1860·2019-08-30 10:59
閱讀 3215·2019-08-29 17:00
閱讀 2317·2019-08-23 17:55