1. 程式人生 > >抽象類特點 學習筆記

抽象類特點 學習筆記

指向 str stat sys 重寫 animal main nds bst

B:抽象類特點

  • a:抽象類和抽象方法必須用abstract關鍵字修飾
    • abstract class 類名 {}
    • public abstract void eat();
  • b:抽象類不一定有抽象方法,有抽象方法的類一定是抽象類或者是接口
  • c:抽象類不能實例化那麽,抽象類如何實例化呢?
    • 按照多態的方式,由具體的子類實例化。其實這也是多態的一種,抽象類多態。
  • d:抽象類的子類
    • 要麽是抽象類
    • 要麽重寫抽象類中的所有抽象方法
class Demo1_Abstract {
    public static void main(String[] args) {
        //Animal a = new Animal();          //錯誤: Animal是抽象的; 無法實例化
        Animal a = new Cat();               //父類引用指向子類對象
        a.eat();
    }
}
/*
* B:抽象類特點
    * a:抽象類和抽象方法必須用abstract關鍵字修飾
        * abstract class 類名 {}
        * public abstract void eat();
    * b:抽象類不一定有抽象方法,有抽象方法的類一定是抽象類或者是接口
    * c:抽象類不能實例化那麽,抽象類如何實例化呢?
        * 按照多態的方式,由具體的子類實例化。其實這也是多態的一種,抽象類多態。
    * d:抽象類的子類
        * 要麽是抽象類
        * 要麽重寫抽象類中的所有抽象方法
*/
abstract class Animal {                     //抽象類
    public abstract void eat();             //抽象方法

    public Animal() {
        System.out.println("父類空參構造");
    }
}

class Cat extends Animal {
    public Cat() {
        super();
    }
    public void eat() {
        System.out.println("貓吃魚");
    }
}

抽象類特點 學習筆記