Java抽象クラスとは何ですか

(*-*)浩
リリース: 2019-11-11 11:48:30
オリジナル
3817 人が閲覧しました

Java 言語では、abstract キーワードを使用してクラスを変更する場合、そのクラスは抽象クラスと呼ばれます。抽象クラスは、そのすべてのサブクラスのパブリック属性のコレクションと、1 つ以上の抽象メソッドを含むクラスです。

Java抽象クラスとは何ですか

#抽象クラスは、クラスをさらに抽象化したものとみなすことができます。オブジェクト指向の分野では、抽象クラスは主に型の隠蔽に使用されます。

抽象メソッド (推奨学習: java コース)

抽象クラスには、一般メソッドと抽象メソッドを含めることができます。抽象メソッドの定義は一般メソッドの定義とは異なり、抽象メソッドはメソッド ヘッダーの直後にセミコロンが続きますが、一般メソッドには中括弧で囲まれたメソッド本体が含まれます。すべての抽象メソッドは抽象クラス内に存在する必要があります。

抽象クラスで定義されたメソッドは抽象メソッドと呼ばれます。これらのメソッドにはメソッド ヘッダーの宣言のみがあり、セミコロンはメソッド本体の定義 (つまり、メソッドのインターフェイス形式のみ) を置き換えるのに使用されます。 member メソッドは具象操作なしで定義されます。

派生クラスによる抽象メンバー メソッドの再定義のみが、派生クラスに関連する操作を真に実装できます。

各サブクラスは、親クラスの抽象メソッドを継承した後、異なるステートメントとメソッド本体でそれを再定義し、同じ名前、同じ戻り値、同じパラメータ リスト、同じ目的を持つ複数のサブクラスを形成します。ただし、具体的な実装方法にはいくつかの違いがあります。

抽象クラスで抽象メソッドを定義する目的は、インターフェイスを実装することです。つまり、すべてのサブクラスが同じ名前のメソッドを外部に提示します。

Java 言語で抽象クラスを定義するには、抽象クラスを使用します。次の例:

/* 文件名 : Employee.java */public abstract class Employee{
   private String name;   private String address;   private int number;   public Employee(String name, String address, int number)
   {
      System.out.println("Constructing an Employee");      this.name = name;      this.address = address;      this.number = number;   }
   public double computePay()
   {
     System.out.println("Inside Employee computePay");     return 0.0;   }
   public void mailCheck()
   {
      System.out.println("Mailing a check to " + this.name
       + " " + this.address);   }
   public String toString()
   {
      return name + " " + address + " " + number;   }
   public String getName()
   {
      return name;   }
   public String getAddress()
   {
      return address;   }
   public void setAddress(String newAddress)
   {
      address = newAddress;   }
   public int getNumber()
   {
     return number;   }}
ログイン後にコピー

Employee クラスも同様であることに注意してください。このクラスは抽象クラスですが、3 つのメンバー変数、7 つのメンバー メソッド、および 1 つのコンストラクターを持っています。

ただし、抽象メソッドを継承してオーバーライドする必要があり、直接インスタンス化することはできません。

以上がJava抽象クラスとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート