一、介紹
Java是一種面向對象的編程語言,其中一個重要的特性就是繼承。繼承是指在一個類的基礎上創建一個新的類,新的類將自動繼承原有類的成員變量和方法。這個新的類被稱為子類,原有類被稱為父類。Java的繼承關鍵字為extends
。繼承可以讓代碼更加模塊化和復用,減少代碼的冗餘度。
二、繼承的優點
1. 代碼重用
繼承可以讓子類擁有父類的屬性和方法,避免了重複定義代碼的情況。這樣可以提高代碼復用性,也方便代碼的維護。
2. 父類代碼更新後,子類自動更新
當父類的代碼更新時,所有繼承自父類的子類會自動繼承更新後的代碼,不需要額外的修改。這樣可以保證代碼的一致性和可維護性。
3. 多態性
繼承是實現多態性的基礎。多態性指的是同一種操作,針對不同的對象會產生不同的行為。利用父類指向子類對象的特點,可以讓代碼更加靈活。
三、繼承的實現
繼承是指在一個類的基礎上創建一個新的類,新的類將自動繼承原有類的成員變量和方法。
public class FatherClass {
protected String name;
protected int age;
public FatherClass(String name, int age) {
this.name = name;
this.age = age;
}
public void sayHello() {
System.out.println("Hello, I'm " + name);
}
}
public class SonClass extends FatherClass {
private String grade;
public SonClass(String name, int age, String grade) {
super(name, age);
this.grade = grade;
}
public void sayGrade() {
System.out.println("I'm in grade " + grade);
}
}
上述代碼中,SonClass繼承了FatherClass類,並在原有的基礎上增加了一個grade
屬性和一個sayGrade
方法。在SonClass中,通過super
來調用父類的構造函數,同時利用繼承獲得了父類的name
和age
屬性。
四、super關鍵字
super
關鍵字可以用來訪問父類的屬性和方法,調用父類的構造函數和方法。使用super
關鍵字可以使得子類可以在不重寫父類方法的情況下,調用父類的方法。
public class FatherClass {
protected String name;
protected int age;
public FatherClass(String name, int age) {
this.name = name;
this.age = age;
}
public void sayHello() {
System.out.println("Hello, I'm " + name);
}
}
public class SonClass extends FatherClass {
private String grade;
public SonClass(String name, int age, String grade) {
super(name, age);
this.grade = grade;
}
public void sayHello() {
System.out.println("Hello, I'm " + name + ", and I'm in grade " + grade);
super.sayHello();
}
}
上述代碼中,SonClass重寫了父類的sayHello
方法,並且在代碼中使用了super.sayHello()
來調用父類的sayHello
方法。通過super
關鍵字,可以方便地調用父類的屬性和方法。
五、final關鍵字和繼承
final
關鍵字可以用來修飾一個類或者方法,表示該類或方法無法被繼承或重寫。在繼承中,如果一個類被聲明為final,則不能被繼承。
public final class FatherClass {
protected String name;
protected int age;
public FatherClass(String name, int age) {
this.name = name;
this.age = age;
}
public void sayHello() {
System.out.println("Hello, I'm " + name);
}
}
上述代碼中,FatherClass被聲明為final
,則不能被其他類繼承。
六、總結
繼承是Java中重要的面向對象編程特性之一,它可以讓代碼更加模塊化和復用,減少代碼的冗餘度。同時,在繼承中,我們需要注意super
關鍵字的使用和final
關鍵字的限制。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/180061.html