• <nav id="dstbx"></nav>

    <nav id="dstbx"></nav>
    1. <form id="dstbx"></form>
    2. <small id="dstbx"></small>

      教育行業A股IPO第一股(股票代碼 003032)

      全國咨詢/投訴熱線:400-618-4000

      什么是繼承?Java中如何聲明一個類繼承另一個類?

      更新時間:2021年06月15日16時51分 來源:傳智教育 瀏覽次數:

      傳智教育-一樣的教育,不一樣的品質

      在現實生活中,說到繼承,多會想到子女繼承父輩的財產、事業等。在程序中,繼承描述的是事物之間的所屬關系,通過繼承可以使多種事物之間形成一種關聯體系。例如貓和狗都屬于動物,程序中便可以描述為貓和狗繼承自動物;同理,波斯貓和巴厘貓繼承自貓,而沙皮狗和斑點狗繼承自狗。這些動物之間會形成一個繼承體系,如圖1所示。

      1623746489231_11.png

      在Java中,類的繼承是指在一個現有類的基礎上去構建一個新的類,構建出來的新類被稱作子類,現有類被稱作父類或基類,子類會自動擁有父類所有可繼承的屬性和方法。

      在程序中,如果想聲明一個類繼承另一個類,需要使用extends關鍵字,其基本語法格式如下:

      [修飾符] class 子類名 extends 父類名 {
        // 程序核心代碼
      }

      在上述語法格式中,類的修飾符是可選的,用來指定類的訪問權限,可以使用public或者省略不寫;子類名和父類名都是必選的,并且子類與父類之間要使用extends關鍵字實現繼承關系。

      接下來通過一個案例來學習子類是如何繼承父類的,如文件1所示。

      文件1 Example01.java

           // 定義Animal類
           class Animal {
               String name; // 聲明name屬性
               // 定義動物叫的方法
               void shout() {
                   System.out.println("動物發出叫聲");
               }
           }
           // 定義Dog類繼承Animal類
           class Dog extends Animal {
               // 定義一個打印name的方法
               public void printName() {
                   System.out.println("name=" + name);
               }
           }
           // 定義測試類
           public class Example01 {
               public static void main(String[] args) {
                   Dog dog = new Dog();  // 創建一個Dog類的實例對象
                   dog.name = "沙皮狗";   // 為dog對象的name屬性進行賦值
                   dog.printName();       // 調用dog對象的printName()方法
                   dog.shout();            // 調用Dog類繼承來的shout()方法
               }
           }

      運行結果如圖2所示。

      1623746475267_12.jpg

      圖2 運行結果

      在文件1中,Dog類通過extends關鍵字繼承了Animal類,這樣Dog類便是Animal類的子類。從圖2可以看出,子類雖然沒有聲明name屬性和shout()方法,但是卻能訪問這兩個成員。這就說明,子類在繼承父類的時候,會自動擁有父類所有公共的成員。

      在實現類的繼承中,需要注意一些問題,具體如下:

      (1)在Java中,類只支持單繼承,不允許多重繼承,也就是說一個類只能有一個直接父類,例如下面這種情況是不合法的。

      class A{} 
           class B{}
           class C extends A,B{}  // C類不可以同時繼承A類和B類

      (2)多個類可以繼承同一個父類,例如下面這種情況是允許的。

         class A{}
         class B extends A{}
         class C extends A{}  // 類B和類C都可以繼承類A

      (3)在Java中,多層繼承是可以的,即一個類的父類可以再去繼承另外的父類,例如下面這種情況是允許的。

         class A{}
         class B extends A{}  // 類B繼承類A,類B是類A的子類
         class C extends B{}  // 類C繼承類B,類C是類B的子類,同時也是類A的子類

      (4)在Java中,子類和父類是一種相對概念,也就是說,一個類是某個類父類的同時,也可以是另一個類的子類。例如上面的第3個示例中,B類是A類的子類,同時又是C類的父類。





      猜你喜歡:

      Java面向對象中類的定義是什么?

      接口和抽象類有什么區別?【java面試題】

      Java枚舉(Enum)類型原理探求

      傳智教育JAVA高級軟件工程師培訓

      0 分享到:
      神马影院我不卡