1. 程式人生 > >抽象類的概述及其特點

抽象類的概述及其特點

  • A:抽象類概述
    • 抽象就是看不懂的
  • B:抽象類的特點

    • a:抽象類和抽象方法必須用abstract關鍵字修飾
      • abstract class 類名 {}
      • public abstract void eat();
    • b:抽象類不一定有抽象方法,有抽象方法的類一定是抽象類或者是介面
    • c:抽象類不能例項化那麼,抽象類如何例項化呢?
      • 按照多型的方式,由具體的子類例項化。其實這也是多型的一種,抽象類多型。
    • d:抽象類的子類

      • 要麼是抽象類
      • 要麼重寫抽象類中的所有抽象方法

        class Demo01_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();             //抽象方法
        }
        //錯誤
        //Cat不是抽象的,並且未覆蓋Aniaml中的抽象方法eat()
        class Cat extends Animal{
        
        }
        //正確
        //要麼是抽象類
        abstract class Cat extends Animal{
        
        }
        //正確
        //要麼重寫抽象類中的所有抽象方法
        class Cat extends Animal {
            public void eat() {
                System.out.println("貓吃魚");
            }
        }
        
注:一般用第二種方法
重寫抽象類中的所有抽象方法