iT邦幫忙

2023 iThome 鐵人賽

DAY 14
0
Software Development

Java基礎筆記系列 第 14

Java的繼承 Inheritance(父類別vs.子類別)

  • 分享至 

  • xImage
  •  

Java具有三大特性:封裝、繼承、多型。此篇介紹「繼承」,在創建一個新的類別時,可以使用已經存在的類別之屬性及方法,此特性就稱為「繼承」。

繼承

被繼承的類別稱為「父類別」,繼承的類別則為「子類別」,子類別可以繼承父類別的所有屬性及方法,而子類別還能新增自己的屬性及方法,此行為稱為「延伸」extends。繼承的特性:

  • 子類別繼承父類別的屬性和方法,能夠重複使用父類別的程式碼。
  • 一個類別只能繼承一個父類別(單向單一繼承);但一個父類別可以被多個子類別繼承。
  • 父類別跟子類別有「is a」的關係,例如狗「是一種is a」動物。

父、子類別

每個類別都可以追溯到最上層(直接或間接),擁有一個共同的父類別「Object」,「Object」又被稱為萬物之父; Java所有的類別都繼承自java.lang.Object類別。

  • 父類別superclass-其屬性和方法是其他類別的基礎,具有共同成員的類別,稱為基底類別。(一般化)
  • 子類別subclass-繼承父類別的屬性和方法,還能擁有自己的屬性和方法,稱為衍生類別。(特別化)
    1.子類別「繼承」inheritance父類別的所有屬性和方法。
    2.子類別「延伸」extends父類別,擴充自己的類別,另外自訂屬於自己的屬性和方法。
    3.子類別「重寫」override父類別的方法

Java只支援『單向繼承』,也就是說一個子類別只可以有一個父類別,不過一個父類別可以被多個子類別繼承

class Animal {  //父類別
   String name;
   
   public Animal(String name){
       this.name = name;
   }
   public void sound(){
       System.out.println("Some generic sound");
   }
}

class Dog extends Animal{ //子類別
    public Dog(String name){
        super(name);
    }
    public void bark(){
        System.out.println("Woof!");
    }
}

補充:當沒有呼叫建構子時,Java預設第一行加上super();呼叫


上一篇
Java的封裝 Encapsulation
下一篇
Java的多型Polymorphism
系列文
Java基礎筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言