java 继承作用_java三大特性之继承
繼承(extends):
讓類與類之間產(chǎn)生關(guān)系,子父類的關(guān)系
繼承的好處與弊端:
好處:
提高代碼的復(fù)用性
提高了代碼的維護(hù)性
讓類與類之間產(chǎn)生關(guān)系,是多態(tài)的前提
弊端:
類的耦合性增加
開發(fā)的原則是:
1、高內(nèi)聚,低耦合
2、耦合:類與類的聯(lián)系
3、內(nèi)聚:就是自己完成某件事情的能力
繼承的特點(diǎn)(掌握):
Java只支持單繼承,子類只能有一個父類。
注:但是java中的接口功能支持多實(shí)現(xiàn)
Java支持多層繼承(爺-父-子)
java中類的繼承特點(diǎn):
如果想看這個體系的所有功能用最底層的類創(chuàng)建對象
如果想看共性功能,看最頂層的類
繼承的注意事項(xiàng)(掌握)
子類只能繼承父類的非私有的成員(成員變量和成員方法)
子類不能繼承父類的構(gòu)造器,但是可以通過super 關(guān)鍵字調(diào)用父類的構(gòu)造方法
不要為了部分功能而去強(qiáng)行繼承
適合使用繼承的環(huán)境:
當(dāng)兩者體現(xiàn)的是一種 is-a 的關(guān)系。
例如:
人-->男人
食物-->水果-->蘋果-->酸蘋果
this 和super的區(qū)別:
this代表當(dāng)前對象的引用,誰來調(diào)用我,我就代表誰
super代表父類對象的引用。
兩者使用區(qū)別
調(diào)用成員變量
this調(diào)用本類的成員變量,也可以調(diào)用父類的成員變量
super調(diào)用父類的成員變量
調(diào)用構(gòu)造方法
this調(diào)用本類的構(gòu)造方法
super調(diào)用父類的構(gòu)造方法
調(diào)用成員方法
this.成員方法 調(diào)用本類的成員方法,也可以調(diào)用父類的成員方法
super.成員方法 調(diào)用父類的成員方法
繼承中構(gòu)造方法的關(guān)系(掌握)
子類所有的構(gòu)造方法都會默認(rèn)訪問父類的構(gòu)造方法。
原因:
子類繼承父類的數(shù)據(jù),可能會使用父類的數(shù)據(jù)。
子類初始化前會先完成父類的初始化
每個構(gòu)造方法的第一條語句默認(rèn)都是:super();
Object類是最頂層的類(Everything is Object)萬物皆為對象
繼承中構(gòu)造方法的注意事項(xiàng)(掌握)
父類沒有構(gòu)造方法時,子類怎么辦?
super解決
this解決
注意:super(...)或者this(...)必須出現(xiàn)在構(gòu)造方法的第一條語句上。
方法的重寫的注意事項(xiàng)(掌握)
注意以下方法不會重寫
1、靜態(tài)方法不會重寫 ,父類為靜態(tài),子類只能為靜態(tài),否則編譯錯誤
2、final 修飾方法 否則編譯錯誤
3、私有方法不會重寫
4.子類重寫父類方法時,訪問權(quán)限不能更低最好寫成一致。
5.子類重寫父類的方法時,最好聲明一模一樣。
* Override和Overload的區(qū)別?Overload能改變返回值類型嗎?
* overload可以改變返回值類型,只看參數(shù)列表
* 方法重寫:子類中出現(xiàn)了和父類中方法聲明一模一樣的方法。與返回值類型有關(guān),返回值是一致(或者是子父類)的
* 方法重載:本類中出現(xiàn)的方法名一樣,參數(shù)列表不同的方法。與返回值類型無關(guān)。
* 子類對象調(diào)用方法的時候:
* 先找子類本身,再找父類。
final關(guān)鍵字(一把手術(shù)刀)
特點(diǎn):
修飾類:類不能被繼承
修飾變量:變量編程常量,只能初始賦值一次
修飾方法:不能被重寫
final修飾變量的初始化時機(jī):
顯示初始化
在對象構(gòu)造完畢前即可。
final 表示最終的。
不能修飾構(gòu)造方法
修飾類,表示該類不能被繼承.比喻成一把極其鋒利的手術(shù)刀,將父類閹割
修飾方法,表示該方法不能被重寫
修飾屬性,表示常量,值一旦確定不可改變。
final 修飾的方法不可以被覆蓋,但父類中沒有被 final 修飾方法,子類覆蓋后可以加 final。
class Fu {
// final 修飾的方法,不可以被覆蓋,但可以繼承使用
public final void method1(){}
public void method2(){}
}
class Zi extends Fu {
//重寫 method2 方法
public final void method2(){}
}
總結(jié)
以上是生活随笔為你收集整理的java 继承作用_java三大特性之继承的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ios django 连接mysql_D
- 下一篇: java 入门程序_自学 Java 怎么