抽象クラスの概要とその特徴

1409 ワード

  • 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("   ");
        }
    }
    
  • を書き換えるか


    注:一般的には2つ目の方法が使用されます
    抽象クラス内のすべての抽象メソッドを書き換える