中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java繼承是什么及怎么實現

發布時間:2022-04-27 10:44:50 來源:億速云 閱讀:216 作者:iii 欄目:開發技術

今天小編給大家分享一下Java繼承是什么及怎么實現的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

1.什么是繼承

所謂繼承就是抽取類的共性,進而實現代碼的復用

繼承的關鍵字是extends

現在定義一個類Tree,里面有樹的名字、來源和科屬,方法是打印樹的形態特征,如下:

class Tree {
    String name;
    String source;
    String genu;
    public void trait() {
    }
}

上面的類除了方法trait外,其它成員都是重復的,所以我們再定義一個類Plant將這些重復的成員抽取出來,如下:

class Plant {
    String name;
    String source;
    String genu;
}

然后再讓Tree繼承Plant即可:

class Plant {
    String name;
    String source;
    String genu;
}
class Tree extends Plant{
    public void trait() {
 
    }
}

其中Tree是子類/派生類,Plant是父類/基類

那么Tree中是否真的有Plant中的成員,不妨實例化一個對象來看看:

Java繼承是什么及怎么實現

實例化的意義除了實現代碼的復用之外,還有則是實現多態,多態會在后面文章講到

2.繼承的細節

在了解什么是繼承之后來對繼承的一些細節進行深入了解

2.1super關鍵字

super在非靜態方法中使用,主要作用是在子類中訪問父類的成員,它可以作用于子類的成員變量、成員方法和構造方法,在構造方法的使用在子類構造方法中講解

  • 子類成員和父類成員重名

子類成員和父類成員重名會優先使用子類的成員,這一點很好證明,如圖:

Java繼承是什么及怎么實現

我們現在在Treed的trait中加入如下語句:

 public void trait() {
        System.out.println(super.name+"高可以達到30米");
    }

結果如圖:

Java繼承是什么及怎么實現

如果是方法重名,會構成重載或重寫,重寫是多態內容,這里只簡單介紹一下,就是父類和子類方法的返回值、方法名和參數都是相同的,如果是重載,可通過參數來判斷是訪問的誰的方法,重寫的話,在方法中添加 “super.方法名” 來訪問父類的方法

Java繼承是什么及怎么實現

2.2子類的構造方法

因為子類是繼承了父類的成員的,所以在寫子類構造方法時第一件事就是調用父類的構造方法,這里使用的依舊是super,我們在Plant中寫上一個有三個參數的構造方法:

public Plant(String name, String source, String genu) {
        this.name = name;
        this.source = source;
        this.genu = genu;
    }

子類的構造方法如下(假設子類沒有自己的成員變量):

public Tree(String name, String source, String genu) {
        super(name, source, genu);
    }

有一點需要注意:super()只能在構造方法中的第一行出現

之前在寫構造方法的時候講過:即使用戶沒有寫構造方法,編譯器也會提供一個不帶參數的構造方法,這里也同理,只不過子類構造方法中第一行會加上super()

2.3super和this區別

相同點不同點
只能在類的非靜態方法中用來訪問非靜態成員方法和成員變量
 
this是當前對象的引用,super相當于是在子類中引用繼承父類的那部分成員
 
在構造方法中使用只能放在第一行(所以構造方法中不能同時出現super()和this())this是非靜態成員方法的一個隱藏參數,super不是
 

以上就是“Java繼承是什么及怎么實現”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

庄河市| 安岳县| 甘德县| 光山县| 阿鲁科尔沁旗| 怀安县| 敦煌市| 霍邱县| 清原| 唐河县| 西林县| 海城市| 南京市| 小金县| 鹤峰县| 灵台县| 永平县| 罗定市| 浏阳市| 镶黄旗| 特克斯县| 高安市| 内乡县| 东港市| 清镇市| 东方市| 儋州市| 阜新市| 新宾| 吉水县| 永寿县| 冷水江市| 长海县| 惠安县| 景谷| 鸡西市| 米脂县| 靖宇县| 宝丰县| 蓬溪县| 麻栗坡县|