Javaの抽象クラス

Sep 22, 2023 am 11:53 AM
継承 実装 抽象クラス

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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Javaの抽象クラス Javaの抽象クラス Sep 22, 2023 am 11:53 AM

宣言に抽象キーワードを含むクラスを抽象クラスと呼びます。抽象クラスには、抽象メソッド、つまり本体のないメソッド (publicvoidget();) が含まれる場合と含まれない場合があります。ただし、クラスに少なくとも 1 つの抽象メソッドがある場合、クラスは抽象として宣言される必要があります。クラスが抽象宣言されている場合、インスタンス化することはできません。抽象クラスを使用するには、別のクラスから抽象クラスを継承し、そのクラスに抽象メソッドの実装を提供する必要があります。抽象クラスから継承する場合は、そのクラス内のすべての抽象メソッドの実装を提供します。例 このセクションでは、抽象クラスの例を示します。抽象クラスを作成するには、クラス宣言で class キーワードの前に abstract キーワードを使用するだけです。 /*ファイル名:エンプロ

C++ における一般的なコード再利用の問題の解決策 C++ における一般的なコード再利用の問題の解決策 Oct 09, 2023 pm 01:50 PM

C++ における一般的なコード再利用の問題の解決策 C++ プログラミングでは、コードの再利用は開発効率とコードの保守性を向上させる重要なテクノロジです。ただし、コードの断片の繰り返し、複雑な継承関係など、コードの再利用に関する一般的な問題が発生することがよくあります。この記事では、これらの問題を解決するための一般的な方法をいくつか紹介し、具体的なコード例を示します。関数のカプセル化 関数のカプセル化は、コードの一部を関数にカプセル化することで、他の場所で複数回呼び出すことができ、同じコードを繰り返し記述することを避けることができる一般的なコード再利用方法です。

C++ 開発におけるコードの階層関係の問題を解決する方法 C++ 開発におけるコードの階層関係の問題を解決する方法 Aug 22, 2023 am 11:22 AM

C++ 開発におけるコードの階層関係の問題を解決する方法: 複雑な C++ プログラムを開発する場合、一般的な問題はコードの階層関係の管理です。階層が正しくないと、コードの読み取り、保守、拡張が困難になる可能性があります。この問題を解決するには、次のような戦略を採用できます。まず、適切なディレクトリ構造を使用してコード ファイルを整理できます。適切なディレクトリ構造では、コード ファイルをより秩序正しく配置できるため、開発プロセス中に関連するコードをすばやく見つけたり変更したりすることが容易になります。一般的に推奨されるのは、

C++ でオブジェクト指向プログラミングを行うにはどうすればよいですか? C++ でオブジェクト指向プログラミングを行うにはどうすればよいですか? Aug 27, 2023 am 08:34 AM

C++ でオブジェクト指向プログラミングを行うにはどうすればよいですか?オブジェクト指向プログラミング (OOP) は、非常に一般的かつ重要なソフトウェア開発パラダイムです。 C++ は、オブジェクト指向プログラミングのサポートを含むマルチパラダイム プログラミング言語です。 C++ では、クラスとオブジェクトの概念を通じて、オブジェクト指向プログラミングを簡単に実装できます。まず、クラスを定義する必要があります。クラスはカスタムです

抽象クラスを使用して PHP アプリケーションのインフラストラクチャを構築する方法 抽象クラスを使用して PHP アプリケーションのインフラストラクチャを構築する方法 Aug 02, 2023 pm 03:09 PM

抽象クラスを使用して PHP アプリケーションのインフラストラクチャを構築する方法 要約: PHP アプリケーション開発において、抽象クラスは非常に重要なツールです。この記事では、抽象クラスを使用して PHP アプリケーションのインフラストラクチャを構築する方法を紹介し、読者の理解を助けるコード例を示します。はじめに: 抽象クラスは、直接インスタンス化できないクラスであり、主に共有プロパティとメソッドを定義し、サブクラスの標準テンプレートを提供するために使用されます。抽象クラスは継承でき、サブクラスは親クラスのすべての抽象メソッドを実装する必要があります。 PHP アプリケーションではポンプを使用します

Java プログラミングでプロキシ最終クラスの強制継承を通じて、より優れたコード抽象化を実現するにはどうすればよいでしょうか? Java プログラミングでプロキシ最終クラスの強制継承を通じて、より優れたコード抽象化を実現するにはどうすればよいでしょうか? Sep 06, 2023 pm 01:40 PM

Java プログラミングでプロキシ最終クラスの強制継承を通じて、より優れたコード抽象化を実現するにはどうすればよいでしょうか?はじめに: Java プログラミングでは、既存のクラスを拡張する必要がある状況によく直面します。ただし、場合によっては、クラスが Final として宣言されている、つまり継承できないクラスがある場合があります。では、この場合、コードの抽象化と再利用をどのように実現するのでしょうか?この記事では、コードのセキュリティを維持しながら、より優れたコード抽象化を実現するために、強制継承を通じて最終クラスを委任する方法を紹介します。 Java の最終クラスの制限

多くの二分探索実装に問題がありますか? 多くの二分探索実装に問題がありますか? Sep 10, 2023 pm 04:21 PM

二分探索アルゴリズムは線形探索アルゴリズムよりも優れていることがわかっています。このアルゴリズムの実行に必要な時間は O(logn) です。ただし、ほとんどの場合、実装されたコードにはいくつかの問題があります。以下に示すような二分探索アルゴリズム関数を考えてみましょう - 例 intbinarySearch(intarray[],intstart,intend,intkey){ if(start<=end){ intmid=(start+end)/2);//midlocationof

Javaのスーパーキーワード Javaのスーパーキーワード Sep 16, 2023 pm 10:57 PM

スーパー変数は、直接の親クラスのインスタンスを参照します。スーパー変数は直接の親クラスのメソッドを呼び出すことができます。 super() は直接の親クラスのコンストラクターとして機能し、子クラスのコンストラクターの最初の行に置く必要があります。オーバーライドされたメソッドのスーパークラス バージョンを呼び出す場合は、super キーワードを使用します。ライブ デモンストレーションの例 classAnimal{ publicvoidmove(){ System.out.println("Animalscanmove"); }}cl

See all articles