學習筆記,僅供參考
文章目錄
- 面向對象
- 繼承
- 先來個例子
- 繼承的好處和弊端
- Java中類的繼承特點
- 繼承的注意事項
面向對象
繼承
繼承(extends),讓類與類之間産生關系,比如子父類關系。
先來個例子
我們先定義一個Animal類,再定義一個Bunny類,Bunny類繼承了Animal類:
class ExtendsTest {
public static void main(String[] args) {
Bunny b = new Bunny();
b.name = "Huang";
b.age = 9;
b.show();
}
}
class Animal {
String name;
int age;
public void eat() {
System.out.println("吃飯");
}
public void sleep() {
System.out.println("睡覺");
}
public void show() {
System.out.println(name + "已經" + age + "個月啦");
}
}
class Bunny extends Animal {
}
輸出:
Huang已經9個月啦
繼承的好處和弊端
- 繼承的好處
- 提高了代碼的複用性
- 提高了代碼的維護性
- 讓類與類之間産生了關系,是多态的前提
- 繼承的弊端
- 類的耦合性增強了。
- 開發的原則:高内聚,低耦合。
- 耦合:類與類的關系
- 内聚:自己完成某件事情的能力
Java中類的繼承特點
- Java中類的繼承特點
- Java隻支援單繼承,不支援多繼承。
- Java支援多層繼承(兒子繼承父親,父親繼承爺爺,一層一層的繼承體系)
- 如果想用這個體系的所有功能,用最底層的類建立對象
- 如果想看這個體系的共性功能,看最頂層的類
- 舉個例子
class ExtendsTest2 {
public static void main(String[] args) {
DemoA da = new DemoA(); //共性功能
da.show1();
DemoC dc = new DemoC(); //擁有所有功能
dc.show1();
dc.show2();
dc.show3();
}
}
class DemoA {
public void show1() {
System.out.println("DemoA");
}
}
class DemoB extends DemoA {
public void show2() {
System.out.println("DemoB");
}
}
class DemoC extends DemoB {
public void show3() {
System.out.println("DemoC");
}
}
輸出:
DemoA
DemoA
DemoB
DemoC
繼承的注意事項
- 繼承的注意事項
- 子類隻能繼承父類所有非私有的成員(成員方法和成員變量);
- 子類不能繼承父類的構造方法,但是可以通過super關鍵字去通路父類構造方法;
- 不要為了部分功能而去繼承。