ホームページ  >  記事  >  Java  >  Javaの抽象クラス

Javaの抽象クラス

WBOY
WBOY転載
2023-09-22 11:53:071466ブラウズ

Javaの抽象クラス

#宣言に抽象キーワードを含むクラスを抽象クラスと呼びます。

    抽象クラスには、抽象メソッド、つまり本体のないメソッド (public void get(); )
  • ただし、クラスに少なくとも 1 つの抽象メソッドがある場合、メソッドの場合、クラスは抽象として宣言する必要があります。
  • クラスが抽象として宣言されている場合、インスタンス化することはできません。
  • 抽象クラスを使用するには、別のクラスからそれを継承し、そのクラスに抽象メソッドの実装を提供する必要があります。
  • 抽象クラスを継承する場合は、そのクラス内のすべての抽象メソッドの実装を提供する必要があります。

#例このセクションでは、抽象クラスの例を示します。抽象クラスを作成するには、クラス宣言で class キーワードの前に abstract キーワードを使用するだけです。

/* File name : 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 クラスは Java の通常のクラスと同じであることがわかります。このクラスは抽象クラスになりましたが、依然として 3 つのフィールド、7 つのメソッド、およびコンストラクターがあります。

ここで、次の方法で Employee クラスのインスタンス化を試みることができます -

/* File name : AbstractDemo.java */
public class AbstractDemo {
   public static void main(String [] args) {
      /* Following is not allowed and would raise error */
      Employee e = new Employee("George W.", "Houston, TX", 43);
      System.out.println("\n Call mailCheck using Employee reference--");
      e.mailCheck();
    }
 }

上記のクラスをコンパイルすると、次のエラーが発生します -

Employee.java:46: Employee is abstract; cannot be instantiated
Employee e = new Employee("George W.", "Houston, TX", 43); ^ 1 error  

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

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。