買 1 件享 10 件:高夫男士竹葉淨源控油護膚套裝 59 元
1 繼承的基本概念
(1)可以先建立公共屬性的父類,然後再根據各子類的不同特性建立其各個不同屬性和方法。
(2)繼承得到的類為子類,被繼承的類為父類,也叫超類。
(3)Java不支援多繼承(子類只能有一個父類)。
2 Object類及其方法
(1)Java中的所有類都預設繼承Object類,Object是所Java所有類的父類。
(2)定義:public class Object
(3)Object是類層次結構的根類,每個類都使用Object作為超類,所有物件(包括陣列)都實現這個類的方法。
(4)Object類的常用方法:
3 物件中的克隆
(1)克隆的限制
-
被克隆的類必須自己實現Cloneable介面,以指示Object.clone()方法可以合法地對類例項進行按欄位賦值。
-
實現Cloneable介面的類應該使用公共方法重寫Object,clone(它是受保護的)。
-
在Java.lang.Object類中克隆方法的定義:
protected Object clone() throws CloneNotSupportedException
建立並返回此物件的一個副本,表明是一個受保護的方法,同一個包中可見。
(2)淺層克隆和深層克隆
-
漸層克隆:主要複製基本物件的值
-
深層克隆:當類存在聚合關係時,克隆必須考慮聚合物件的克隆,可以複製引用型別的欄位。
4 Java中的繼承
(1)公式:class 子類 extends 父類{}
(2)作用:使用繼承,子類可以擁有父類中的非私有屬性,這樣可以使多個類中相同的屬性提取出來作為父類管理。
-
子類共享父類中的非私有屬性
-
子類可以擁有父類中的非私有方法
(3)Java不支援多繼承,子類只能繼承一個父類,但是一個父類可以被多個子類繼承。
5.super關鍵字
子類可以使用super關鍵字呼叫父類的非私有屬性和非私有方法,還可以呼叫父類的非私有構造方法
1 public class Person { 2 public String name; 3 public String sex; 4 public int age; 5 public String getName() { 6 return name; 7 } 8 public void setName(String name) { 9 this.name=name; 10 } 11 public String getSex() { 12 return sex; 13 } 14 public void setSex(String sex) { 15 this.sex=sex; 16 } 17 public int getAge() { 18 return age; 19 } 20 public void setAge(int age) { 21 this.age=age; 22 } 23 }
(1)使用super關鍵字呼叫父類屬性
語法:super.父類屬性(super關鍵字可以省略)
1 public class Student extends Person{ 2 private String deparement; 3 private String specialty; 4 String name1=super.name; //呼叫父類屬性 5 String name2=name; //呼叫父類屬性 6 }
(2)使用super呼叫父類方法
語法:super.父類方法 (super關鍵字可以省略)
1 public class Student extends Person{ 2 private String deparement; 3 private String specialty; 4 public void test1() { 5 super.getAge(); //呼叫父類方法 6 } 7 public void test2() { 8 getAge(); //呼叫父類方法 9 } 10 }
(3)使用super呼叫父類的構造方法
如果使用super(),則呼叫父類的無參構造方法;如果使用super(引數),則呼叫父類的有參構造方法
1 public class Person{ 2 public String name; 3 public int age; 4 public Person() { 5 } 6 public Person(String name,int age) { 7 this.name=name; 8 this.age=age; 9 } 10 } 11 public class Student extends Person{ 12 public student() { 13 super("sky",26); //呼叫父類構造方法 14 } 15 }
(4)子類和父類構造方法的執行順序
-
子類預設呼叫父類的無參構造方法,即子類的構造方法中會預設呼叫super()並且在構造方法的第一行。
-
如果子類只提供有參的構造方法則,必須在子類的構造方法中呼叫父類的構造方法。
-
執行完父類的構造方法後,再呼叫本類中的構造方法。