1.1 繼承的定義
繼承可以看成是類與類之間的衍生關系。比如狗類是動物類,牧羊犬類又是狗類。于是我們可以說狗類繼承了動物類,而牧羊犬類就繼承了狗類。于是狗類就是動物類的子類(或派生類),動物類就是狗類的父類(或基類)。
所以繼承需要符合的關系是:is-a,父類更通用,子類更具體。
我們創建一個類需要它來繼承某一個類的語法:
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("動物叫!");
}
}
接下來創建一個子類,我們可以自己輸入代碼,也可以利用 Eclipse 幫我們自動建立繼承關系。
1、點擊創建 class 類
2、輸入子類名稱,點擊Superclass
后面的Browse...
尋找父類,與之建立繼承關系
子類命名
3、在Choose a type:
下的輸入框內輸入要尋找的父類,然后選擇,結束。
搜索父類
package com.shiyanlou;
public class Dog extends Animal {
}
上面便是系統生成的代碼,Dog 類繼承了父類 Animal,我們 Dog 類里什么都沒有寫,其實它繼承了父類 Animal,所以 Dog 類擁有 Animal 類的全部方法和屬性(除開 private 方法和屬性)。我們創建一個測試類測試一下。
class Test{
public static void main(String[] args) {
Dog a = new Dog();
a.legNum = 4;
a.bark();
}
}
為什么需要繼承?
如果有兩個類相似,那么它們會有許多重復的代碼,導致后果就是代碼量大且臃腫,后期的維護性不高。通過繼承就可以解決這個問題,將兩段代碼中相同的部分提取出來組成一個父類,實現代碼的復用。
繼承的特點:
- 子類擁有父類除private以外的所有屬性和方法
- 子類可以擁有自己的屬性和方法
- 子類可以重寫實現父類的方法
- Java 中的繼承是單繼承,一個類只有一個父類
注: Java 實現多繼承的一個辦法是 implements(實現)接口