Javaの抽象クラス

WBOY
リリース: 2023-09-22 11:53:07
転載
1390 人が閲覧しました

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 までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!