溫馨提示×

溫馨提示×

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

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

有哪些java繼承特性

發(fā)布時間:2021-11-02 13:36:24 來源:億速云 閱讀:145 作者:iii 欄目:編程語言

這篇文章主要講解了“有哪些java繼承特性”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“有哪些java繼承特性”吧!

什么是繼承

    繼承是java對象面向?qū)ο蟮娜筇匦灾?,即子類繼承父類的特征和行為,從而使子類對象具備父類的相同的行為。比如說:現(xiàn)實生活中的動物,兔子和羊?qū)儆谑巢輨游镱悾{子和豹屬于食肉動物類,但食草動物和食肉動物又是屬于動物類,如下圖:

有哪些java繼承特性

繼承的語法

class 父類 {
}

class 子類 extends 父類 {
}

繼承的特點(diǎn)

    1. 繼承關(guān)鍵字extends ,實現(xiàn)了繼承之后,類與類之間產(chǎn)生了關(guān)系;

    2. 繼承的本質(zhì)就是抽取共性代碼,多個重復(fù)代碼的向上抽取,簡化代碼;

    3. 類是對一批對象的抽象,繼承是對一批類的抽象;

    4. 父類又被稱為超類,或者基類,子類又被稱為派生類;

    5. Java是面向?qū)ο笳Z言,萬事萬物皆是對象,為了滿足這個設(shè)計原則,所有的類都直接或者間接繼承自O(shè)bject類。

繼承的優(yōu)缺點(diǎn)

    優(yōu)點(diǎn):

        1.簡化了代碼;

        2.提高了擴(kuò)展性和可維護(hù)性;

    缺點(diǎn):

        耦合度搞,牽一發(fā)而動全身

繼承案例

    介紹

    開發(fā)動物類,其中動物分別為企鵝以及老鼠,要求如下:

        企鵝:屬性(姓名,id),方法(吃,睡,自我介紹)

        老鼠:屬性(姓名,id),方法(吃,睡,自我介紹)

   通常情況下我們會這么寫:

        首先定義一個企鵝類,然后是屬性,方法,然后是老鼠類,屬性方法,如下:

/**
*企鵝類
**/
public class Penguin { 
   private String name;
   private int id;
   public Penguin(String myName, int  myid) {
       name = myName;
       id = myid;
   }
   public void eat(){
       System.out.println(name+"正在吃");
   }
   public void sleep(){
       System.out.println(name+"正在睡");
   }
   public void introduction() {
       System.out.println("大家好!我是"         + id + "號" + name + ".");
   }
}
/**
*老鼠類
**/
public class Mouse { 
   private String name;
   private int id;
   public Mouse(String myName, int  myid) {
       name = myName;
       id = myid;
   }
   public void eat(){
       System.out.println(name+"正在吃");
   }
   public void sleep(){
       System.out.println(name+"正在睡");
   }
   public void introduction() {
       System.out.println("大家好!我是"         + id + "號" + name + ".");
   }
}

通過編碼發(fā)現(xiàn)代碼存在重復(fù)了,導(dǎo)致后果就是代碼量大且臃腫,而且維護(hù)性不高。那我們是不是可以用繼承的方案解決呢?請看下面代碼:

/**
*抽出公共部分定義父類
**/
public class Animal { 
   private String name;  
   private int id;
   public Animal(String myName, int myid) {
       name = myName;
       id = myid;
   }
   public void eat(){
       System.out.println(name+"正在吃");
   }
   public void sleep(){
       System.out.println(name+"正在睡");
   }
   public void introduction() {
       System.out.println("大家好!我是"         + id + "號" + name + ".");
   }
}
/**
*企鵝類繼承父類
**/
public class Penguin extends Animal { 
   public Penguin(String myName, int myid) {
       super(myName, myid);
   }
}
/**
*老鼠類繼承父類
**/
public class Mouse extends Animal { 
   public Mouse(String myName, int myid) {
       super(myName, myid);
   }
}

通過繼承,是不是簡化了代碼,提高了代碼的擴(kuò)展性和可維護(hù)性。

注意事項

    了解繼承,知道l如何實現(xiàn),但還需注意以下幾點(diǎn):

        1.  父類屬性方法使用private修飾,那么子類不能被繼承  ;

        2.  只支持單一繼承,通俗點(diǎn)講就是一個子類只能有一個父類,但父類可以有多個子類;

        3.支持多層繼承;

        4. 當(dāng)子類和父類的成員變量重名的時候,子類優(yōu)先,即就近原則。

感謝各位的閱讀,以上就是“有哪些java繼承特性”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對有哪些java繼承特性這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI