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