JAVA繼承

      網友投稿 808 2025-03-31

      繼承:定義一個類,讓它成為某個類(一般叫父類)的子類,那么它就會繼承父類里的部分屬性和方法。

      因此,類的繼承性使所建立的軟件具有開放性、可擴充性,這是信息組織與分類的行之有效的方法,通過類的繼承關系,使公共的特性能夠共享,簡化了對象、類的創建工作量,增加了代碼的可重用性,復用性。

      定義語法:

      [類修飾符]?class?子類名?extends?父類名 {?語句;}

      public class Person{ ?? ?private String name ; //name屬性私有化,無法在其他類進行訪問或操作,所以不能繼承 ?? ?protected String sex ; ?? ?public String getName() { ?? ??? ?return name; ?? ?} ?? ?public void setName(String name) {? ? ? ? ? this.name = name; ? ? }?} //extends關鍵字作用為一個子類指定父類的實現,即student類繼承了Person類。 public class student extends Person {}

      1、在Java中,Java.lang.Object 類是所有java類的最高層父類,是唯一一個沒有父類的類:

      如果在類的聲明中未使用extends 關鍵字指明其父類,則默認父類為Object 類。java中的類的繼承關系形成了以Object 類為樹根的樹狀層次結構。

      2、如果兩個類存在繼承關系,則子類會自動繼承父類的部分方法和變量,在子類中可以對其調用。在java中,只允許單繼承,即 一個類只能繼承一個父類,但可以擁有多個子類。

      (1) 子類繼承父類的成員變量

      1)能夠繼承父類的public和protected成員變量;不能夠繼承父類的private成員變量;

      JAVA繼承

      2)對于子類可以繼承的父類成員變量,如果在子類中出現了同名稱的成員變量,則會發生隱藏現象,即子類的成員變量會屏蔽掉父類的同名成員變量。如果要在子類中訪問父類中同名成員變量,需要使用super關鍵字來進行引用。

      public class Person{ ?? ?protected String sex = "男" ; } //extends關鍵字作用為一個子類指定父類的實現 public class student extends Person { ?? ?protected String sex = "女" ;? //繼承Person類,出現同名稱成員變量 }

      結果顯示:(隱藏現象)

      若要獲取父類的成員變量,則:

      public class student extends Person { ?? ?private String sex = "女" ; //私有化屬性 ?? ?public String getSex() //創建方法在其他類調用,用super.獲取父類成員變量 ?? ?{return super.sex;} }

      (2) 子類繼承父類的方法

      1)能夠繼承父類的public和protected成員方法;不能夠繼承父類的private成員方法;

      2)對于子類可以繼承的父類成員方法,如果在子類中出現了同名稱且同參數的成員方法(又叫子類重寫父類的方法),則稱為覆蓋,即子類的成員方法會覆蓋掉父類的同名成員方法。如果要在子類中訪問父類中同名成員方法,需要使用super關鍵字來進行引用。

      public class Person{ ?? ?public void setName() { ?? ??? ?System.out.println("父類的方法被調用!"); ?? ?} } public class student extends Person { ?? ?public void setName() { ?? ??? ?System.out.println("子類的方法被調用!"); ?? ?} } public class test { ?? ?public static void main(String[] args) ?? ?{ ?? ??? ?student student = new student(); ?? ??? ?student.setName(); ?? ?}?}

      若要獲取父類的成員方法,則:

      public class student extends Person { ?? ?public void setName() { ? ? ? ? super.setName();??// 在同名成員方法中,用super.獲取父類的成員方法 ?? ??? ?System.out.println("子類的方法被調用!"); ?? ?} }

      隱藏和覆蓋的區別是:隱藏是針對成員變量和靜態方法的,而覆蓋是針對普通方法的。

      3、子類是不能夠繼承父類的構造函數的,但是,如果父類的構造函數都是帶有參數的,則必須在子類的構造函數中用super關鍵字調用父類的構造函數并配以適當的參數列表。如果父類有無參構造函數,則在子類的構造函數中,系統會自動調用父類的無參構造函數。

      public class Person{ ?? ?private String name ; ?? ?private int age ; ?? ?public Person(String name , int age) ?? ?{ ?? ??? ?this.name = name ; ?? ??? ?this.age = age ; ?? ?} ?? ?public String toString() { ?? ??? ?return "name=" + name + ", age=" + age + ""; ?? ?}} public class student extends Person { ?? ?public student(String name , int age) ?? ?{ ? ? ? ? super("小明",18); ?? ?}}

      4、super關鍵字表示父類,主要有兩種用法:

      1)super.menber; (用于在子類中調用父類的同名成員變量或者方法)

      2)super([args]); (用于調用父類的構造函數,args表示參數,且要在子類構造函數的第一個語句)

      Java

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:WPS如何將公文默認保存成DOC格式?
      下一篇:制造中心生產流程管理規范(工廠生產流程管理制度)
      相關文章
      亚洲人成色77777| 国产亚洲精品VA片在线播放| 亚洲已满18点击进入在线观看| 国产亚洲综合一区柠檬导航| 亚洲日韩AV一区二区三区四区| 亚洲另类自拍丝袜第1页| 亚洲AV永久无码区成人网站| 亚洲人成网亚洲欧洲无码久久| 亚洲性久久久影院| 亚洲第一页日韩专区| 亚洲精品偷拍视频免费观看| 亚洲日本一区二区三区在线不卡| 亚洲国产精品成人久久蜜臀 | 亚洲精品自在线拍| 亚洲成人免费网址| 亚洲伦理一二三四| 亚洲狠狠成人综合网| 亚洲人成色777777精品| 亚洲风情亚Aⅴ在线发布| 国产成人亚洲综合a∨| 亚洲成片观看四虎永久| 国产亚洲精品无码专区| 国产亚洲精久久久久久无码77777| 在线观看国产区亚洲一区成人| 国产亚洲一区区二区在线| 久久亚洲国产精品一区二区| 香蕉视频在线观看亚洲| 亚洲精品第一国产综合精品| 亚洲人成网站看在线播放| 亚洲精品无码久久久久A片苍井空| 国产成人高清亚洲一区久久| 亚洲精品国精品久久99热| 亚洲综合熟女久久久30p| 亚洲av鲁丝一区二区三区| 亚洲视频中文字幕在线| 亚洲一区精彩视频| 国产精品观看在线亚洲人成网| 国产亚洲色婷婷久久99精品91| 亚洲国产成人精品不卡青青草原| 亚洲成在人线中文字幕| 亚洲乱码中文字幕在线|