麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

0010 繼承

2019-11-14 11:17:02
字體:
來源:轉載
供稿:網友

繼承的定義

  繼承可以看成是類與類之間的衍生關系。比如狗類是動物類,牧羊犬類又是狗類。于是我們可以說狗類繼承了動物類,而牧羊犬類就繼承了狗類。于是狗類就是動物類的子類(或派生類),動物類就是狗類的父類(或基類)。

  在 java 中一個類只有一個父類,所以 Java 中的繼承是單繼承。就像我們每個人只有一個親生父親,而我們如果有一個有錢的父親我們就是富二代;有一個明星父親,我們就是星二代。繼承可以讓子類直接擁有父類的所有屬性和方法(屬性和方法的修飾符是 PRivate 就不行,因為是私有的嘛)。而繼承的好處便是可以實現代碼的復用,使我們程序猿的福利啊!  

我們創建一個類需要它來繼承某一個類的語法:

class 子類 extends 父類

例如我們定義了一個 Animal 類,我們在創建一個 Dog 類,我們需要它繼承 Animal 類

class Dog extends Animal {    ...}

我們先創建一個父類 Animal

package com.shiyanlou;public class Animal {    public int legNum;     //動物四肢的數量    //類方法    public void bark() {        System.out.println("動物叫!");    }}

接下來創建一個子類

1、點擊創建 class 類

2、輸入子類名稱,點擊Superclass后面的Browse...尋找父類,與之建立繼承關系

子類命名

3、在Choose a type:下的輸入框內輸入要尋找的父類,然后選擇,結束。

搜索父類

package com.shiyanlou;public class Dog extends Animal {}

上面便是系統生成的代碼,Dog 類繼承了父類 Animal,我們 Dog 類里什么都沒有寫,其實它繼承了父類 Animal,所以 Dog 類擁有 Animal 類的全部方法和屬性(除開私有的方法和屬性)。我們創建一個測試類測試一下。

繼承代碼示例

方法的重寫

  雖然子類可以繼承父類的方法,但如果子類對父類的方法不滿意,子類想在里面加入適合自己的一些操作時,我們就需要將方法進行重寫。并且子類在調用方法中,優先調用子類的方法    

       比如上一個例子中 Animal 有bark()這個方法代表了動物叫,但是不同的動物有不同的叫法,比如狗是汪汪汪,貓是喵喵喵。    

       當然在方法重寫時我們需要注意,重寫的方法一定要與原父類的方法語法保持一致,比如返回值類型,參數類型及個數,和方法名都必須一致。  

例如:

package com.shiyanlou;public class Dog extends Animal {    //重寫父類方法        public void bark() {        System.out.println("汪!汪!汪!");    }}

繼承的初始化順序

  我們學習了繼承后,知道在一個繼承關系中一定會有一個父類和至少一個子類,那么在程序運行的過程中,是為父類進行初始化,還是先調用的子類進行初始化的呢?    繼承的初始化順序是先初始化父類再初始化子類。

  我們根據代碼來驗證一下。

package com.shiyanlou;public class Animal {    public int legNum = 4; // 動物四肢的數量    //Animal的構造方法    public Animal(){        System.out.println("動物有" + legNum + "腿");        System.out.println("父類的構造方法被調用!");    }}
package com.shiyanlou;public class Dog extends Animal {    //Dog類的構造方法    public Dog(){        System.out.println("子類的構造方法被調用!");    }}
package com.shiyanlou;public class test {    public static void main(String[] args) {        // TODO Auto-generated method stub        Dog a = new Dog(); //生成一個Dog類對象a    }}

最后輸出結果:

輸出結果

  由此可知,系統先創建了父類對象,再創建了子類對象,先初始化了屬性,再調用了構造函數。    

補充知識點:

final關鍵字可以修飾類、方法、屬性和變量

final 修飾類,則該類不允許被繼承

final 修飾方法,則該方法不允許被覆蓋(重寫)

final 修飾屬性:則該類的屬性不會進行隱式的初始化(類的初始化屬性必須有值)或在構造方法中賦值(但只能選其一)

final 修飾變量,則該變量的值只能賦一次值,即變為常量

super關鍵字在子類內部使用,代表父類對象

訪問父類的屬性 super.屬性名

訪問父類的方法 super.bark()


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 91九色精品国产 | 亚洲精华液久久含羞草 | 一级电影免费 | 国产免费久久久久 | 少妇一级淫片免费放正片 | 成人小视频在线播放 | 一本色道久久综合狠狠躁篇适合什么人看 | 高清国产在线 | 国产免费一区二区三区在线能观看 | www.91视频com | 亚洲第一黄色网 | 亚洲天堂一级片 | 91av在线影院 | h色网站在线观看 | 日韩色视频在线观看 | 午夜精品久久久久久毛片 | 国产精品一区二区三区99 | 色屁屁xxxxⅹ在线视频 | 中文字幕在线网 | 在线a亚洲视频播放在线观看 | 欧美a视频 | 日本a∨精品中文字幕在线 狠狠干精品视频 | 国产成人精品午夜 | h视频免费在线 | 国产一区二区三区黄 | 日产精品久久久一区二区开放时间 | 蜜桃传媒视频麻豆第一区免费观看 | 国产精品夜色视频一级区 | 久久99精品久久久久久小说 | 黄视频网站免费在线观看 | 干少妇av | 海外中文字幕在线观看 | 日韩视频在线观看免费视频 | 国内精品久久久久久2021浪潮 | 91成人免费视频 | 成人免费一区二区三区在线观看 | 久久日本 | 成人一级黄色大片 | 黄色网址免费入口 | 免费在线观看成年人视频 | 毛片在线免费视频 |