一、基礎概念
(一)繼承的好處:
1.繼承:提高了代碼的復用性。
2.讓類與類之間產生了關系,給多態這個特征提供了前提。
(二)繼承的種類:
1.單繼承:一個類只能有一個父類。
2.多繼承:一個類可以有多個父類。
3.java支持單繼承,不直接支持多繼承。(因為多繼承調用的不穩定性)
(三)繼承使用時候:
1.當事物之間存在着所屬關系時。可以通過繼承來體現這個關系。
如:XXX是YYY的一種。XXX extends YYY
2.父類中私有的部分,子類對象是無法直接訪問的。子類對象通過setXXX和getXXX進行訪問。
二、實例代碼
1 //將student類和worker類共享的代碼抽取到Person類中,形成一個父類Person。 2 class Person 3 { 4 //父類中私有的部分,子類對象通過setXXX和getXXX進行訪問。 5 private String name; 6 int age; 7 8 public void setName(String name) 9 { 10 this.name = name; 11 } 12 public String getName() 13 { 14 return this.name; 15 } 16 void sleep() 17 { 18 System.out.println("Name: "+name+",age: "+age+" sleep ......"); 19 } 20 } 21 22 //student類繼承了Person類的屬性和方法(通過關鍵字extends繼承) 23 class Student extends Person 24 { 25 //可以擁有自己的方法study 26 void study() 27 { 28 System.out.println("name: "+this.getName()+",age: "+age+" study ......"); 29 } 30 } 31 32 //worker類繼承了Person類的屬性和方法 33 class Worker extends Person 34 { 35 //可以擁有自己的方法work 36 void work() 37 { 38 System.out.println("name: "+this.getName()+",age: "+age+" work ......"); 39 } 40 } 41 class ExtendsDemo 42 { 43 public static void main(String[] args) 44 { 45 //創建一個實例p,賦給name和age,並輸出sleep方法和study方法。 46 Student p = new Student(); 47 p.setName("xiaoming"); 48 p.age = 18; 49 p.sleep(); 50 p.study(); 51 //創建一個實例s,賦給name和age,並輸出sleep方法和work方法。 52 Worker s = new Worker(); 53 s.setName("laoli"); 54 s.age = 38; 55 s.sleep(); 56 s.work(); 57 } 58 }
三、代碼運行