成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

8.java 繼承

huaixiaoz / 844人閱讀

摘要:繼承就是子類繼承父類的特征和行為,使得子類對象實例具有父類的實例域和方法,或子類從父類繼承方法,使得子類具有父類相同的行為。關鍵字在中,類的繼承是單一繼承,也就是說,一個子類只能擁有一個父類,所以只能繼承一個類。

概念

繼承是java面向對象編程技術的一塊基石,因為它允許創(chuàng)建分等級層次的類。

繼承就是子類繼承父類的特征和行為,使得子類對象(實例)具有父類的實例域和方法,或子類從父類繼承方法,使得子類具有父類相同的行為。

語法格式

Java 中通過 extends 或 implement關鍵字可以申明一個類是從另外一個類或接口繼承而來的,一般形式如下:

class 父類 {
}

interface 接口{
  
}
class 子類 extends 父類, implement 接口 {
}

需要注意的是 Java 不支持類的多繼承,但支持接口的多繼承。

繼承的特性

子類擁有父類非 private 的屬性、方法,實現了代碼復用。

本質上來說子類會繼承父類的所有屬性(包括private),只是私有屬性和方法無法直接使用。

子類可以擁有自己的屬性和方法,即子類可以對父類進行擴展。

子類可以用自己的方式實現父類的方法,即重寫/覆寫(Override)。

Java 的類繼承是單繼承,不支持多繼承,單繼承就是一個子類只能繼承一個父類,這是 Java 繼承區(qū)別于 C++ 繼承的一個特性。

提高了類之間的耦合性(繼承的缺點,耦合度高就會造成代碼之間的聯系越緊密,代碼獨立性越差)。

繼承關鍵字

繼承可以使用 extends 和 implements 這兩個關鍵字來實現繼承,而且所有的類都是繼承于 java.lang.Object,當一個類沒有繼承的兩個關鍵字,則默認繼承object(這個類在 java.lang 包中,所以不需要 import)祖先類。

extends關鍵字

在 Java 中,類的繼承是單一繼承,也就是說,一個子類只能擁有一個父類,所以 extends 只能繼承一個類。

implements關鍵字

使用 implements 關鍵字可以變相的使java具有多繼承的特性,使用范圍為類繼承接口的情況,可以同時繼承多個接口(接口跟接口之間采用逗號分隔)。

public interface A {
    public void eat();
    public void sleep();
}
 
public interface B {
    public void show();
}
 
public class C implements A,B {
}
super 與 this 關鍵字

super關鍵字:我們可以通過super關鍵字來實現對父類成員的訪問,用來引用當前對象的父類。

this關鍵字:指向自己的引用。

final關鍵字

final 關鍵字聲明類可以把類定義為不能繼承的,即最終類;或者用于修飾方法,該方法不能被子類重寫.

構造器

子類是不繼承父類的構造器(構造方法或者構造函數)的,它只是調用(隱式或顯式)。

如果父類的構造器帶有參數,則必須在子類的構造器中顯式地通過 super 關鍵字調用父類的構造器并配以適當的參數列表。

如果父類構造器沒有參數,則在子類的構造器中不需要使用 super 關鍵字調用父類構造器,系統(tǒng)會自動調用父類的無參構造器。

class SuperClass {
    private int n;
    SuperClass(){
      System.out.println("SuperClass()");
    }
    SuperClass(int n) {
      System.out.println("SuperClass(int n)");
      this.n = n;
    }
  }
  class SubClass extends SuperClass{
    private int n;
    
    SubClass(){
      super(300);
      System.out.println("SubClass");
    }  
    
    public SubClass(int n){
      System.out.println("SubClass(int n):"+n);
      this.n = n;
    }
  }
  public class TestSuperSub{
    public static void main (String args[]){
      SubClass sc = new SubClass();
      SubClass sc2 = new SubClass(200); 
    }
  }

輸出結果為:
SuperClass(int n)
SubClass
SuperClass()
SubClass(int n):200

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://systransis.cn/yun/73560.html

相關文章

  • Java 學習筆記

    摘要:參考資料程序設計北大唐大仕零基礎學語言浙大翁愷面向對象程序設計語言浙大翁愷在里面搜索可以查看和修改快捷鍵自動補全代碼格式化簡介歷史與一起發(fā)展萬維網所有信息用鏈接連接起來靜態(tài)網頁動態(tài)網頁的出現年開發(fā)工具包語法增加廣泛動態(tài)編譯腳本 參考資料 Java程序設計 - 北大 - 唐大仕 零基礎學Java語言 - 浙大 - 翁愷 面向對象程序設計——Java語言 - 浙大 - 翁愷 Ecl...

    tianlai 評論0 收藏0
  • Java問題匯總,持續(xù)更新到GitHub

    摘要:目錄介紹問題匯總具體問題好消息博客筆記大匯總年月到至今,包括基礎及深入知識點,技術博客,學習筆記等等,還包括平時開發(fā)中遇到的匯總,當然也在工作之余收集了大量的面試題,長期更新維護并且修正,持續(xù)完善開源的文件是格式的同時也開源了生活博客,從年 目錄介紹 00.Java問題匯總 01.具體問題 好消息 博客筆記大匯總【16年3月到至今】,包括Java基礎及深入知識點,Android技...

    beita 評論0 收藏0
  • Java 進階面試問題列表

    摘要:進階面試問題列表翻譯自,從屬于筆者的入門與工程實踐系列。只是單純的問題列表,可能較水,慎進。面向對象編程的基本理念與核心設計思想解釋下多態(tài)性,封裝性,內聚以及耦合。新版的中有哪些新特性介紹下的優(yōu)勢與缺陷。 Java 進階面試問題列表翻譯自Java developer interview questions: The hard part,從屬于筆者的Java入門與工程實踐系列。最近公司打...

    張巨偉 評論0 收藏0
  • 40道阿里巴巴JAVA研發(fā)崗多線程面試題詳解,你能答出多少

    摘要:但是單核我們還是要應用多線程,就是為了防止阻塞。多線程可以防止這個問題,多條線程同時運行,哪怕一條線程的代碼執(zhí)行讀取數據阻塞,也不會影響其它任務的執(zhí)行。 1、多線程有什么用?一個可能在很多人看來很扯淡的一個問題:我會用多線程就好了,還管它有什么用?在我看來,這個回答更扯淡。所謂知其然知其所以然,會用只是知其然,為什么用才是知其所以然,只有達到知其然知其所以然的程度才可以說是把一個知識點...

    lpjustdoit 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<