2019.3.13 Java的特性——繼承
阿新 • • 發佈:2019-03-13
類比 ide object ima ani extends sys inf this
繼承
- 面向對象編程(OOP)三大特征:繼承,封裝,多態
目的:為了減少重復代碼,避免復制粘貼
創建父類Animal
public class Animal {private String name; //定義name屬性 private String kind; //定義kind屬性 private int age; //定義age屬性 public void bite(){ //創建bite方法 System.out.println("咬咬咬");
}
public void bark(){ //創建bark方法 System.out.println("叫叫叫")
}
@Override
public String toString() {
return "Animal{" +
"name=‘" + name + ‘‘‘ +
", kind=‘" + kind + ‘‘‘ +
", age=" + age +
‘}‘;
public String getName() {
return name;
}public void setName(String name) { this.name = name; } public String getKind() { return kind; } public void setKind(String kind) { this.kind = kind; } public int getAge() { return age; } public void setAge(int age) { this.age = age; }
}
創建子類Cat繼承於父類Animal
public class Cat extends Animal{
}
- MainClass中使用子類Cat
public class SecClass {
public static void main(String[] args) {
Cat cat = new Cat();
cat.setName("旺財");
cat.setAge(2);
cat.setKind("土狗");
System.out.println(cat);
cat.bark();
cat.bite();
}
}
輸出顯示測試數據
- 註釋
- 子類和父類是相對概念
- 只有單繼承,只能繼承一個類
- 子類可以繼承父類所有的"public"修飾的屬性和方法,"private"修飾的無法繼承
- main中通過訪問public方法來訪問private屬性
- 子類可以有獨特的方法和屬性,功能可以比父類更細致
父類比子類範圍更大
Java中所有的類都最終繼承於Object類
當子類Cat中想要新加方法時
public class Cat extends Animal{
public void wash(){
System.out.println("洗臉");
}
}
當子類Cat想要修改(重寫)父類方法時
- 子類可以重寫(Alt+Insert選第三個,快捷鍵ctrl+o)
- 測試樣例,bark()方法想要輸出"喵喵喵"
public class Cat extends Animal{
@Override
public void bark() {
System.out.println("喵喵喵");
}
}
- 當子類Cat既想重寫父類方法,又想在父類方法的基礎上新加東西
public class Cat extends Animal{
public void bite() {
super.bite();//→就是執行前面的bite"咬咬咬"
System.out.println("貓咬人");//新添加的東西
}
}
- 註釋
- super的作用在子類中調用從父類繼承的方法
- 測試樣例
2019.3.13 Java的特性——繼承