Java繼承概述 以及Java繼承案例和繼承的好處
阿新 • • 發佈:2018-02-15
自己 復用 dem void dsd 屬性 關鍵字 相同屬性 pre
//定義學生類
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("吃飯");
}
}
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.在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 }
Java繼承概述 以及Java繼承案例和繼承的好處