抽象クラス


抽象クラス

  • 抽象クラスは未完了のクラスです.

  • 未完了クラスには、未完了メソッド:抽象メソッドが含まれます.

  • 抽象クラス自体はクラスの役割を果たすことはできませんが、新しいクラスを作成する基礎となる親として重要な意味があります.クラスを作成するときに、作成した状態から開始できるからです.

  • クラスの前にabstractキーワードを付けます.
  • abstract class Car {
    
       abstract void accelrate();
       
    }
  • 抽象キーワードを持つすべてのクラスが実装されるわけではありません.共有の目的だけで抽象クラスを作成する場合があるからです.
  • 抽象クラスの目的

  • 既存のクラスの共通部分を抽象化し、継承クラスに強制的に実装します.メソッドの動作を実装するサブクラスに委任されます.

  • 共有の目的を持つ.
  • 抽象クラスの特徴

  • 抽象クラスには、抽象メソッドではなく、一般メソッド、メンバーを含めることができます.ただし、抽象メソッドが含まれている場合は、抽象クラスとして宣言する必要があります.

  • 抽象クラスには、未定義のアクションの抽象メソッドが含まれているため、インスタンスを作成できません.
  • abstract class Animal {
      abstract void cry();
    }
    
    class Cat extends Animal {
      @Override
      void cry(){
        System.out.println("냐옹냐옹 ~~!");
      }
    }
    
    class Dog extends Animal {
      @Override
      void cry(){
        System.out.println("멍멍 ~~!");
      }
    }
    
    public class Test{
      public static void main(String[] args){
        // Animal animal = new Animal();
        // 추상 클래스는 자체적으로 인스턴스를 생성할 수 없다. 불완전하기 때문에.
        
        Cat cat = new Cat();
        Dog dog = new Dog();
        
        cat.cry();
        dog.cry();
        
      }
    }
    ニャーニャー!
    ワンワン~~!
    抽象クラスAnimalには抽象メソッドcry()があり、Animalクラスを継承するサブクラスDogとCatクラスはcry()メソッドを上書きしてインスタンスを生成する必要があります.
  • 抽象メソッド
  • 宣言簿のみ記入し、実施簿は記入せず、抽象キーワードを前に付けます.
  • インプリメンテーションブックを作成しない理由は、メソッドの内容が継承されたクラスによって異なる可能性があるためです.
  • を使用する目的は、クラス(抽象メソッドを含む)を継承するサブクラスが抽象メソッドを実装しなければならないことを強制することである.
  • 抽象クラスを継承するサブクラスは、その祖先抽象クラスを実装するすべての抽象メソッドを上書きする必要があります.
  • サブクラスに抽象メソッドが実装されていない場合、サブクラスも抽象クラスとして指定する必要があります.
  • 参考資料