所謂繼承(Inheritance)是一種類別之間的關係,可以利用現有類別衍生出新的類別,新的類別可以與現有類別分享共同的屬性、方法與資料結構等,在物件導向程式設計中利用繼承,可以達到程式碼重複使用的優點。
繼承功能可以在建立新類別時,修改、添加或繼承現有類別的定義。建立一種類別後,如果須要再建立許多大同小異的類別,就可以利用繼承特性,分別繼承這個現有的類別,並且將差異部分加以修改或添加。
被繼承的類別稱為父類別或基礎類別(Base Class),而經由繼承產生的類別,則稱為子類別或衍生類別(Derived Class),子類別不僅可以繼承父類別的特性(屬性與方法),也可以修改或添加特性。
C++支援多重繼承(一個類別擁有多個父類別),但Java不直接支援多重繼承,類似的機制則必須透過介面來完成。
歸納上述,關於繼承的四大特性如下:
1.子類別可以繼承父類別的特性。
2.子類別可以添加新的特性。
3.子類別可以修改並重新定義自父類別繼承下來的特性。
4.子類別繼承父類別時,不需要複製父類別的程式碼,造成程式碼重複。
- public class Ch68 {
- public static void main(String[] args) {
- Dog d1=new Dog("憨憨",2,1.28);
- Dog d2=new Dog("球球",1,1.35);
- Cat c1=new Cat("咪咪",3,0.95);
- d1.showProfile();
- d2.showProfile();
- c1.showProfile();
- }
- }
- class Animal{
-
- String name;
- int age;
- double weight;
-
- Animal(String n, int a, double w)
- {
- name=n;
- age=a;
- weight=w;
- }
-
- void showProfile()
- {
- System.out.println(name+"今年"+age+"歲,體重"+weight+"公斤.");
- }
- }
- class Dog extends Animal
- {
- Dog(String n, int a, double w)
- {
- super(n,a,w);//super():從子類別呼叫其父類別的建構式。
- }
- }
- class Cat extends Animal
- {
- Cat(String n, int a, double w)
- {
- super(n,a,w);
- }
- }
複製代碼 |