Javaの抽象クラス–例を使用
公開: 2022-06-24データの抽象化は、特定の情報を隠し、必要な詳細のみをユーザーに表示する手法です。 このデータの抽象化は、抽象クラスとインターフェースの2つの方法で実現できます。
Javaの抽象クラスとは何ですか?
Javaの抽象クラスは、abstractキーワードで包まれたり宣言されたりする制限付きクラスです。 抽象クラスは、抽象メソッドと非抽象メソッドの両方を持つことができます。 オブジェクトの作成には使用できません。 抽象クラスにアクセスするには、別のクラスから継承する必要があります。
世界のトップ大学からオンラインでソフトウェア開発コースを学びましょう。 エグゼクティブPGプログラム、高度な証明書プログラム、または修士プログラムを取得して、キャリアを迅速に追跡します。
抽象クラスのルール
- 抽象クラスは、抽象キーワード内でのみ宣言できます。
- 抽象メソッドと非抽象メソッドの両方を含めることができます。
- また、finalメソッドを持つこともできます。
- インスタンス化することはできません。
- コンストラクターと静的メソッドも使用できます。
抽象クラスの例:
抽象クラスB{}
Javaの抽象メソッド
このメソッドは抽象クラスでのみ使用でき、本体は含まれていません。 本体は、継承されたサブクラスによって提供されます。
抽象メソッドの例は次のとおりです。
抽象voidprintStatus(); //メソッド本体と抽象なし
Abstractメソッドを使用したJavaAbstractクラスの例
次の例では、carは1つの抽象メソッドrunを持つ抽象クラスです。 実装は、クラスAudiによって提供されます。
抽象クラスCar{
抽象ボイドrun();
}
クラスAudi4はBikeを拡張します{
void run(){System.out.println( "running fine");}
public static void main(String args []){
車obj=new Audi4();
obj.run();
}
}
プログラムの出力は「正常に実行」されます。
ほとんどの場合、実装クラスは不明のままであり(データの抽象化)、実装クラスのオブジェクトはファクトリメソッドを介して取得されます。
クラスインスタンスを返すメソッドは、ファクトリメソッドと呼ばれます。
Factoryメソッドを使用したJava抽象クラスの例
次の例では、squareクラスのインスタンスを作成すると、Squareクラスのdraw()メソッドが開始されます。
抽象クラスShape{
抽象voiddraw();
}
//実際のシナリオでは、実装は他のユーザーによって提供されます。つまり、エンドユーザーには不明です。
クラスSquareはShapeを拡張します{
void draw(){System.out.println( "drawing Square");}
}
クラスCircle1はShape{を拡張します
void draw(){System.out.println( "drawinghexagon");}
}
//実際のシナリオでは、メソッドはプログラマーまたはユーザーによって呼び出されます
クラスTestAbstraction1{
public static void main(String args []){
Shape s = new Circle1(); //実際のシナリオでは、オブジェクトはメソッド、たとえばgetShape()メソッドを介して提供されます。
s.draw();
}
}
上記のプログラムの出力は「六角形の描画」になります。
ソフトウェアエンジニアリングに関する人気のコースと記事
人気のプログラム | |||
ソフトウェア開発におけるエグゼクティブPGプログラム-IIITB | ブロックチェーン証明書プログラム-PURDUE | サイバーセキュリティ証明書プログラム-PURDUE | コンピュータサイエンスのMSC-IIITB |
その他の人気記事 | |||
米国のクラウドエンジニアの給与2021-22 | 米国でのAWSソリューションアーキテクトの給与 | 米国のバックエンド開発者の給与 | 米国のフロントエンド開発者の給与 |
米国のWeb開発者の給与 | 2022年のスクラムマスターインタビューの質問 | 2022年にサイバーセキュリティのキャリアを開始するにはどうすればよいですか? | 工学部の学生のための米国でのキャリアオプション |
Javaで抽象クラスを使用する必要があるのはいつですか?
以下は、抽象クラスを使用できるいくつかのシナリオです。
- 基本クラスの共通メソッドを使用して、コードに継承の概念を導入しようとする場合(さまざまな関連クラス間でコードを共有するため)。
- 要件が具体的で、実装の詳細が不完全な場合。
- 抽象クラスの拡張に使用されるクラスに、非公開修飾子を必要とする複数の共通フィールドまたはメソッドがある場合。
- 非最終メソッドまたは非静的メソッドを使用してオブジェクトの状態を変更する場合。
抽象化のためにJavaでインターフェイスを使用するのはいつですか?
次のシナリオでは、抽象化を実現するためにJavaインターフェースが必要です。
- 多重継承の機能をサポートするため
- 緩い結合を実現するには
インターフェイスの宣言
インターフェイスは、interfaceキーワードによってのみ宣言する必要があります。 これにより、すべての継承メソッドが空の本体で宣言され、すべてのフィールドがデフォルトとしてpublic、static、finalになるように完全に抽象化されます。 インターフェイスを実装するクラスは、インターフェイスで宣言されているすべてのメソッドを実装する必要があります。
Javaインターフェースの例
以下の例では、印刷可能なインターフェイスには、クラスA6で実装が提供されているメソッドが1つだけあります。
印刷可能なインターフェース{
void print();
}
クラスA6はprintable{を実装します
public void print(){System.out.println( "Welcome");}
public static void main(String args []){
A6 obj = new A6();
obj.print();
}
}
プログラムの出力は次のようになります
いらっしゃいませ。
例2:
インターフェイスバンク{
float rateOfInterest();
}
クラスBOIはBank{を実装します
public float rateOfInterest(){return 8.5f;}
}
クラスCUBはBank{を実装します
public float rateOfInterest(){return 9.2f;}
}
クラスTestInterface2{
public static void main(String [] args){
バンクb=new BOI();
System.out.println( "ROI:" + b.rateOfInterest());
}}
上記のプログラムの出力は次のようになります
ROI:8.5
Javaでの抽象化の利点
- 緩い結合: Javaでの抽象化は、指数レベルで依存エンティティを軽減することにより、緩い結合に役立ちます。
- 再利用可能なコード: Javaの抽象クラスは時間を大幅に節約します。 抽象メソッドは、必要な場合にのみ呼び出すことができます。 抽象クラスは同じコードの書き換えを回避し、それによって時間を節約します。
- データ保護: Javaでのデータ抽象化は、機密性の高いコードの詳細をユーザーから隠すのに役立ちます。 重要なプロジェクト機能を非表示にし、重要なコンポーネントのみを表示するのに役立ちます。
- より迅速な問題解決:動的なメソッド解決の助けを借りて、1つの抽象的なメソッドを使用するだけで、さまざまな問題や複雑さを解決できます。
Javaとソフトウェア開発におけるデータの抽象化の詳細については、upGradに関連してIIITバンガロールが提供するソフトウェア開発のエグゼクティブポストグラデュエイトプログラムに登録してください。
ソフトウェア開発のエグゼクティブ大学院プログラムは、13か月のオンラインプログラムです。 カリキュラムは、働く専門家が仕事をあきらめることなく学習に集中できるように特別に設計されています。 カリキュラムには、業界ベースのプロジェクトとケーススタディが含まれています。 さらに、このプログラムには、業界の専門家による10を超えるライブセッションがあり、候補者が業界の現在の傾向を常に把握できるように支援します。
抽象メソッドなしで抽象クラスを持つことはできますか?
はい。 どちらも独立した手法であるため、抽象メソッドなしで抽象クラスを持つことができます。 抽象クラスを宣言することは、それ自体でインスタンス化することはできず、サブクラスの助けを借りてのみ実行できることを意味します。 抽象メソッドの定義とは、メソッドが定義されているか、サブクラスに含まれていることを意味します。
なぜデータの抽象化が不可欠なのですか?
はい。 どちらも独立した手法であるため、抽象メソッドなしで抽象クラスを持つことができます。 抽象クラスを宣言することは、それ自体でインスタンス化することはできず、サブクラスの助けを借りてのみ実行できることを意味します。 抽象メソッドの定義とは、メソッドが定義されているか、サブクラスに含まれていることを意味します。
データの抽象化はコントロールの抽象化とどう違うのですか?
データの抽象化は、複雑で複雑なデータ型を作成するプロセスですが、重要な詳細のみを強調表示または表示します。 コントロールの抽象化は、抽象化のソフトウェア部分を処理するプロセスです。 これは、プログラムが分解または簡略化され、プログラム実行の不要な詳細が隠されるプロセスです。 コントロールの抽象化は、主に新しい機能を生成し、さまざまなコントロールステートメントを単一のエンティティにブレンドするために使用されます。