日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

根据父类id查询所有的父级_父类子类抽象类,super final 重写方法,搞懂继承中复杂的知识点...

發布時間:2023/12/10 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 根据父类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修飾的變量一旦被賦值,這個值不能被改變。如果對該變量進行再次賦值,則程序會在編譯時報錯。
    class Student { final String name;//name沒有被初始化 public void introduce(){ System.out.println(“我叫”+name+”,是一名程序員”); }}public class FinalExample{ pubic static void main (String[] args){ Student stu=new Student() stu.introduce(); }}//編譯會出錯:提示變量name沒有被初始化

    抽象類

    //抽象類的實現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 重写方法,搞懂继承中复杂的知识点...的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。