根据父类id查询所有的父级_父类子类抽象类,super final 重写方法,搞懂继承中复杂的知识点...
繼承
繼承(Inheritance)可以實現類之間共享屬性和方法,是面向對象編程的另一個特性
使用繼承可以最大限度地實現代碼復用。
- 定義:繼承就是在已有類的基礎上構建新的類,一個類繼承已有類后,可以對被繼承類中的屬性和方法進行重用。
- 繼承關系說明:繼承關系通常也稱為 is a kind of 關系。類B 繼承自 類A 意味著:A所有的特點B都有,B還有一些A不具備的特點。即B is a kind of A ,反之則不一定。A是一般類,B是特殊類。
舉例:
Employee類:
? 屬性:private修飾的屬性id和name
? 方法:public修飾的構造方法和setName(String)、
getNumber()、getName()方法
PartTimeEmployee類 繼承Employee的屬性和方法
增加了
? 屬性:private修飾的屬性hourlyPay
? 方法:其他方法
? 在UML中用三角形箭頭表示繼承關系。
繼承的實現:
類的繼承通過extends關鍵字來實現。具體語法如下:
class SubClass extends SuperClass {
子類類體
}
重點
(1)當SubClass和BaseClass位于同一個包中,則SubClass繼承SuperClass中public、protected和默認訪問級別的成員變量和成員方法。
(2)當Sub類和Base類位于不同的包中:SubClass繼承SuperClass中public 、protected訪問級別的成員變量和成員方法。
- Java中不允許多重繼承,子類只能繼承一個父類,即單一繼承。但是,Java可以有多層繼承。即一個類可以繼承某一個類的子類,從而形成一顆繼承樹。
繼承時要遵循的原則:
1.繼承的層次不可太多
繼承的層次應該盡量保持在兩到三層,如果繼承層次很多,會導致對象之間的結構關系太復雜,難以理解,增加設計和開發的難度。
2.繼承樹的上層為抽象層
當一個系統使用一個繼承樹上的類時,應該盡可能把引用變量聲明為繼承樹的上層類型,這樣可以降低類之間的耦合性。
方法重寫:
注意事項
super關鍵字
- super代表父類對象。super關鍵字用來在子類的成員方法中訪問父類成員。
(1)使用super訪問父類的成員變量和成員方法。語法如下:
super.成員變量
super.成員方法([參數1,參數2,......])
(2)使用super關鍵字訪問父類的構造方法。語法如下:
super([參數1,參數2......])
super總結
每一個子類的構造方法在沒有顯示調用super()系統都會提供一個默認的super()
super() 書寫在第一行
可以在子類構造方法中顯示調用super(),完成對特定父類構造方法的調用
當父類只有含缺省值參數的構造方法時,一定要在子類構造方法的第一行顯示地調用父類構造方法
final修飾符
final 修飾變量,變量轉換為常量。final也可以修飾類或者方法。
- final修飾類,意味著這個類不能被繼承,聲明的格式為:
final class finalClassName{
........
}
- final修飾方法,意味著這個方法不能被重寫。
class FinalMethodClass{
final void finalMethod (){
…//原程序代碼
}
}
- final修飾的變量一旦被賦值,這個值不能被改變。如果對該變量進行再次賦值,則程序會在編譯時報錯。
抽象類
//抽象類的實現abstract class Animal { //定義抽象方法shout() public abstract void shout(){};}class Dog extends Animal{ //實現抽象方法shout() public void shout(){ System.out.println(“汪汪汪......”); }}public class AbstractExample{public static void main(String[] args){Dog dog = new Dog();dog.shout();}} 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的根据父类id查询所有的父级_父类子类抽象类,super final 重写方法,搞懂继承中复杂的知识点...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Vue基础之Vue列表渲染
- 下一篇: 收集常用的CSS基础面试题