検索
ホームページJava&#&チュートリアルキーワード:抽象拡張、インターフェース実装

Java 抽象キーワード

abstract キーワードは、Java で抽象化を実現するために使用されます。これは、抽象クラスとメソッドを作成するために使用される非アクセス修飾子です。

抽象クラスの役割は、抽象メソッドを含めることです。ただし、非抽象メソッドが含まれる場合もあります。抽象キーワードで宣言され、実装を持たないメソッドは、抽象メソッドと呼ばれます。

構文:-

    abstract class Employee  
    {  
    abstract void work();  
    }   

注 - 非抽象クラスでは抽象メソッドを宣言できません。

抽象キーワードのルール
してはいけないこと

抽象キーワードは変数やコンストラクターと一緒に使用できません。
クラスが抽象クラスの場合、インスタンス化できません。
メソッドが抽象の場合、メソッドには本体が含まれません。
抽象キーワードをfinalに使用することはできません。
抽象メソッドをプライベートとして宣言することはできません。
抽象メソッドを静的として宣言することはできません。
抽象メソッドは同期できません。

すべきこと(未定)

抽象キーワードはクラスとメソッドでのみ使用できます。
抽象クラスにはコンストラクターと静的メソッドを含めることができます。
クラスが抽象クラスを拡張する場合、少なくとも 1 つの抽象メソッドも実装する必要があります。
抽象クラスには、メイン メソッドと最終メソッドを含めることができます。
抽象クラスには、オーバーロードされた抽象メソッドを含めることができます。
ローカルの内部クラスを抽象として宣言できます。
throw 節を使用して抽象メソッドを宣言できます。

抽象クラスとは:

抽象クラスは、抽象として宣言されたクラスです。抽象メソッドが含まれる場合と含まれない場合があります。抽象クラスはインスタンス化できませんが、サブクラス化することはできます。

抽象メソッドとは:

抽象メソッドは、次のように、実装なしで (中括弧なしでセミコロンが後に続きます) 宣言されるメソッドです。
abstract void moveTo(double deltaX, double deltaY);

*抽象化: *

その主な目的は、不必要な詳細をユーザーから隠すことで複雑さに対処することです。

必要なデータのみを表示し、不要な詳細をユーザーから非表示にします。

抽象クラスには子クラスがあります。 この子クラスは抽象クラスにもできますか?
はい、その場合、Child クラスはインスタンス化できません。

参考:https://www.javatpoint.com/abstract-keyword-in-java

package chennai.velachery;

public abstract class Parent {

    abstract void getJob();

    void studyWell()
    {
        System.out.println("Focus On Maths, Science"); 
    }
    static void display()
    {
        System.out.println("Hi");
    }
    public static void main(String[] args) {
        Parent.display();
//      Parent pp = new Parent(); 
//      pp.display();
//      pp.studyWell(); 
//      pp.getJob();

    }



}

package chennai.velachery;

public class Child extends Parent {


    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Child ch = new Child(); 
        ch.getJob();
        ch.studyWell();
        Child.display();
    }

    @Override //Annotation : Metadata
    //Data about data
    void getJob() {
        // TODO Auto-generated method stub

    }


}

例 2:

package chennai.velachery;

public abstract class Parent1 {

    public void watch_tv()
    {
        System.out.println("Watching TV");
    }
    public void chat_with_friends()
    {
        System.out.println("Chatting with neighbours");
    }
    public abstract void cook(); 

}

package chennai.velachery;

public class Child1 extends Parent1{

    public static void main(String[] args) {
//      Child1 ch = new Child1(); 
//      ch.cook();
//      ch.chat_with_friends(); 
//      ch.watch_tv();
//      ch.work();

        Child1 ch = new Child1(); 
        //Dynamic Binding 
        //Parent Class Reference points to Child class Memory
        Parent1 parent = new Child1();  

        parent.watch_tv();
        parent.chat_with_friends();
        parent.cook();
        //parent.work(); 
    }
    public void watch_tv()
    { //Runtime Polymorphism
        System.out.println("Watching OTT");
    }

    @Override
    public void cook() {
        // TODO Auto-generated method stub
        System.out.println("Cooking");

    }

    public void work()
    {
        System.out.println("Java Projects");
    }

}

Java のインターフェース

Java のインターフェースはクラスの設計図です。静的定数と抽象メソッドがあります。

Java のインターフェースは抽象化を実現するメカニズムです。 Java インターフェースには抽象メソッドのみが存在でき、メソッド本体は存在できません。 Java で抽象化と多重継承を実現するために使用されます。

言い換えれば、インターフェースは抽象メソッドと変数を持つことができると言えます。メソッド本体を含めることはできません。

Java インターフェイスは、IS-A 関係も表します。

抽象クラスと同様にインスタンス化することはできません。

なぜ Java インターフェースを使用するのですか?

インターフェースを使用する理由は主に 3 つあります。それらを以下に示します。

Image description

インターフェースを宣言するには?

インターフェイスは、interface キーワードを使用して宣言されます。それは完全な抽象化を提供します。これは、インターフェイス内のすべてのメソッドが空の本体で宣言され、すべてのフィールドがデフォルトで public、static、final であることを意味します。インターフェイスを実装するクラスは、インターフェイスで宣言されたすべてのメソッドを実装する必要があります。

*インターフェース: *

インターフェースは、空の本体を持つ関連メソッドのグループです
100% 抽象化:

構文:

    abstract class Employee  
    {  
    abstract void work();  
    }   

例:

package chennai.velachery;

public abstract class Parent {

    abstract void getJob();

    void studyWell()
    {
        System.out.println("Focus On Maths, Science"); 
    }
    static void display()
    {
        System.out.println("Hi");
    }
    public static void main(String[] args) {
        Parent.display();
//      Parent pp = new Parent(); 
//      pp.display();
//      pp.studyWell(); 
//      pp.getJob();

    }



}

参考:https://www.javatpoint.com/interface-in-java

Java での拡張と実装:

Java では、extends キーワードは親クラスのすべてのプロパティとメソッドを継承するために使用され、implements キーワードはインターフェイスで定義されたメソッドを実装するために使用されます。

**
extends とimplements の違い キーワード**

Image description

Java の「拡張」キーワード

Java では、extends キーワードは、定義されているクラスが継承を使用して基本クラスから派生していることを示すために使用されます。基本的に、extends キーワードは、親クラスの機能をサブクラスに拡張するために使用されます。 Java では、あいまいさのため多重継承は許可されません。したがって、あいまいさを避けるために、クラスは 1 つのクラスのみを拡張できます。

package chennai.velachery;

public class Child extends Parent {


    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Child ch = new Child(); 
        ch.getJob();
        ch.studyWell();
        Child.display();
    }

    @Override //Annotation : Metadata
    //Data about data
    void getJob() {
        // TODO Auto-generated method stub

    }


}

Java の「実装」キーワード

Java では、implements キーワードを使用してインターフェイスを実装します。インターフェイスは、完全な抽象化を実装し、抽象メソッドのみを含む特別なタイプのクラスです。インターフェイス メソッドにアクセスするには、インターフェイスは、implements キーワードを使用して別のクラスによって「実装」され、インターフェイスのプロパティを継承するクラスにメソッドが実装される必要があります。インターフェイスにはメソッドが実装されていないため、クラスは一度に任意の数のインターフェイスを実装できます。

/

package chennai.velachery;

public abstract class Parent1 {

    public void watch_tv()
    {
        System.out.println("Watching TV");
    }
    public void chat_with_friends()
    {
        System.out.println("Chatting with neighbours");
    }
    public abstract void cook(); 

}

参考:https://www.geeksforgeeks.org/extends-vs-implements-in-java/

例:

    abstract class Employee  
    {  
    abstract void work();  
    }   

package chennai.velachery;

public abstract class Parent {

    abstract void getJob();

    void studyWell()
    {
        System.out.println("Focus On Maths, Science"); 
    }
    static void display()
    {
        System.out.println("Hi");
    }
    public static void main(String[] args) {
        Parent.display();
//      Parent pp = new Parent(); 
//      pp.display();
//      pp.studyWell(); 
//      pp.getJob();

    }



}

抽象クラス u>
0 ~ 100% の抽象化

抽象キーワード

非静的変数

存在することができます

*
*vs インターフェース
100% 抽象化
抽象的なキーワードはありません
すべての変数は静的です。
最終および公開

以上がキーワード:抽象拡張、インターフェース実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか?高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか?Mar 17, 2025 pm 05:46 PM

この記事では、Javaプロジェクト管理、自動化の構築、依存関係の解像度にMavenとGradleを使用して、アプローチと最適化戦略を比較して説明します。

適切なバージョン化と依存関係管理を備えたカスタムJavaライブラリ(JARファイル)を作成および使用するにはどうすればよいですか?適切なバージョン化と依存関係管理を備えたカスタムJavaライブラリ(JARファイル)を作成および使用するにはどうすればよいですか?Mar 17, 2025 pm 05:45 PM

この記事では、MavenやGradleなどのツールを使用して、適切なバージョン化と依存関係管理を使用して、カスタムJavaライブラリ(JARファイル)の作成と使用について説明します。

カフェインやグアバキャッシュなどのライブラリを使用して、Javaアプリケーションにマルチレベルキャッシュを実装するにはどうすればよいですか?カフェインやグアバキャッシュなどのライブラリを使用して、Javaアプリケーションにマルチレベルキャッシュを実装するにはどうすればよいですか?Mar 17, 2025 pm 05:44 PM

この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPA(Java Persistence API)を使用するにはどうすればよいですか?キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPA(Java Persistence API)を使用するにはどうすればよいですか?Mar 17, 2025 pm 05:43 PM

この記事では、キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPAを使用することについて説明します。潜在的な落とし穴を強調しながら、パフォーマンスを最適化するためのセットアップ、エンティティマッピング、およびベストプラクティスをカバーしています。[159文字]

Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか?Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか?Mar 17, 2025 pm 05:35 PM

Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します

分散コンピューティングにJavaのRMI(リモートメソッドの呼び出し)を使用するにはどうすればよいですか?分散コンピューティングにJavaのRMI(リモートメソッドの呼び出し)を使用するにはどうすればよいですか?Mar 11, 2025 pm 05:53 PM

この記事では、分散アプリケーションを構築するためのJavaのリモートメソッドの呼び出し(RMI)について説明します。 インターフェイスの定義、実装、レジストリのセットアップ、およびクライアント側の呼び出しを詳述し、ネットワークの問題やセキュリティなどの課題に対処します。

ネットワーク通信にJavaのソケットAPIを使用するにはどうすればよいですか?ネットワーク通信にJavaのソケットAPIを使用するにはどうすればよいですか?Mar 11, 2025 pm 05:53 PM

この記事では、ネットワーク通信のためのJavaのソケットAPI、クライアントサーバーのセットアップ、データ処理、リソース管理、エラー処理、セキュリティなどの重要な考慮事項をカバーしています。 また、パフォーマンスの最適化手法も調査します

Javaでカスタムネットワークプロトコルを作成するにはどうすればよいですか?Javaでカスタムネットワークプロトコルを作成するにはどうすればよいですか?Mar 11, 2025 pm 05:52 PM

この記事では、カスタムJavaネットワーキングプロトコルの作成を詳述しています。 プロトコルの定義(データ構造、フレーミング、エラー処理、バージョン化)、実装(ソケットを使用)、データシリアル化、およびベストプラクティス(効率、セキュリティ、メンテナ

See all articles

ホット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ヘンタイを無料で生成します。

ホットツール

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 Mac版

SublimeText3 Mac版

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

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール