繼承的特點:
- 減少代碼的冗餘度,增加看代碼的重用性
- 提取子類的共同屬性和行爲,將通用的方法放置在基類中,將具有特殊用途的方法放置在子類中
- java中繼承是單繼承,子類繼承父類所有非私有屬性和方法
- 繼承具有傳遞性,不具有關閉性
繼承方法覆蓋(重寫)
- 子類提供一個方法覆蓋從超類繼承的方法【方法標籤相同,返回值數據類型和訪問修飾符都需要父類小或一樣,對方法體重寫】
package InheritTest;
/*
* @version 父類
*/
public class Person {
protected String name;
protected int age;
//無參構造器
public Person(){}
//帶參數構造器
public Person(String name, int age){
this.name = name;
this.age = age;
}
public void showClass(){
System.out.println("姓名:" + name + "\t"+ "年齡:" + age + "\n");
}
}
子類構造器
- 子類構造器可以使用super關鍵字顯示調用基類的構造器,必須放在第一句,若無顯示調用,子類構造器自動調用基類默認構造器
package InheritTest;
/**
* 繼承父類,重寫方法
*
* @author Administrator
*
*/
public class Student extends Person {
private String sex;
public Student() {
/*
* 隱式調用父類的構造器
*/
}
/**
* 帶參構造器
* @param name
* @param age
* @param sex
*/
public Student(String name, int age, String sex) {
/*
* 顯示調用父類的構造器
*/
super(name, age);
this.sex = sex;
}
/**
* 重寫方法
*/
@Override
public void showClass() {
System.out.println("姓名:" + name + "\t " + "年齡:" + age + "\t " + "性別:" + sex + "\n");
}
}
子類構造器
- 子類構造器可以使用super關鍵字顯示調用基類的構造器,必須放在第一句,若無顯示調用,子類構造器自動調用基類默認構造器