Java繼承概述
1.多個類中存在相同屬性和行為時,将這些内容抽取到單獨一個類中,那麼多個類無需再定義這些相同屬性和行為,隻要繼承那個類即可。
2.在Java中通過extends關鍵字可以實作類與類的繼承。
例如:class 子類名 extends 父類名 {}
3.單獨的這個類稱為父類,基類或者超類;這多個類可以稱為子類或者派生類。
4.有了繼承以後,我們定義一個類的時候,可以在一個已經存在的類的基礎上,還可以定義自己的新成員。
-----------------------------------------------------------------------------
首先我來寫兩個代碼:
//定義學生類
class Student {
String name;
int age;
public Student() {}
//getXxx()/setXxx()
public void eat() {
System.out.println("吃飯");
}
}
//定義老師類
class Teacher {
String name;
int age;
public Teacher() {}
//getXxx()/setXxx()
public void eat() {
System.out.println("吃飯");
}
}
我們觀察上面兩個代碼:
發現name,age成員變量,以及getXxx()/setXxx(),還有eat()等都是相同的。
如果我們後來繼續定義類,舉例:勞工類,軍人類。他們是不是也具備這些内容呢?
那麼,我們每一次定義這樣的類的時候,都要把這些重複的内容都重新定義一遍。
麻煩不?當然麻煩。是以,我們要考慮改進?
那麼如何改進呢?
我這想的:我能不能把這些相同的内容給定義到一個獨立的類中。
然後,讓這多個類和這個獨立的類産生一個關系,有了這個關系後,
這多個類就可以具備這個獨立的類的功能。
為了實作這個效果,Java就提供了一個技術:繼承。
父親:
4個兒子
繼承怎麼表示呢?繼承的格式是什麼樣子的呢?
class Fu {}
class Zi extends Fu {
}
我們就回頭修改我們的代碼:
class Person {
String name;
int age;
public Person() {}
//getXxx()/setXxx()
public void eat() {
System.out.println("吃飯");
}
}
class Student extends Person {
public Student() {}
}
class Teacher extends Person {
public Teacher() {}
}
-----------------------------------------------------------------------------
Java繼承案例和繼承的好處
1 /*
2 繼承概述:
3 把多個類中相同的内容給提取出來定義到一個類中。
4
5 如何實作繼承呢?
6 Java提供了關鍵字:extends
7
8 格式:
9 class 子類名 extends 父類名 {}
10
11 好處:
12 A:提高了代碼的複用性。
13 B:提高了代碼的維護性。
14 C:讓類與類之間産生了關系,是多态的前提。
15
16 類與類之間産生了關系,其實也是繼承的一個弊端:
17 類的耦合性增強了。
18
19 開發的原則:低耦合,高内聚。
20 耦合:類與類之間的關系。
21 内聚:就是自己完成某件事情的能力。
22 */
23
24 //使用繼承前
25 /*
26 class Student {
27 public void eat() {
28 System.out.println("吃飯");
29 }
30
31 public void sleep() {
32 System.out.println("睡覺");
33 }
34 }
35
36 class Teacher {
37 public void eat() {
38 System.out.println("吃飯");
39 }
40
41 public void sleep() {
42 System.out.println("睡覺");
43 }
44 }
45 */
46
47 //使用繼承後
48 class Person {
49 public void eat() {
50 System.out.println("吃飯");
51 }
52
53 public void sleep() {
54 System.out.println("睡覺");
55 }
56 }
57
58 class Student extends Person {}
59
60 class Teacher extends Person {}
61
62 class ExtendsDemo {
63 public static void main(String[] args) {
64 Student s = new Student();
65 s.eat();
66 s.sleep();
67 System.out.println("-------------");
68
69 Teacher t = new Teacher();
70 t.eat();
71 t.sleep();
72 }
73 }
複制