検索
ホームページJava&#&はじめるJava抽象クラスとインターフェースの違いは何ですか?

Java抽象クラスとインターフェースの違いは何ですか?

Nov 14, 2019 pm 05:47 PM
java違い抽象クラスインターフェース

Java抽象クラスとインターフェースの違いは何ですか?

1. 抽象クラス

Java では、キーワード abstract によって変更されたクラスを抽象クラスと呼びます。抽象によって変更されたメソッドは抽象メソッドと呼ばれます。抽象メソッドにはメソッド宣言のみがあり、メソッド本体はありません。

抽象クラスには次の特性があります:

1. 抽象クラスはインスタンス化できませんが、継承のみが可能です。

2. 抽象メソッドを含むクラスは抽象クラスでなければなりませんが、抽象クラスには必ずしも抽象メソッドが含まれる必要はありません (抽象クラスには通常のメソッドを含めることができます)。

3. 抽象メソッドの権限修飾子は public または protected のみにすることができ、デフォルトでは public です。

4. クラスが抽象クラスから継承する場合、サブクラスは抽象クラスの抽象メソッドを実装する必要があります。サブクラスが親クラスの抽象メソッドを実装していない場合、サブクラスは抽象クラス。

5. 抽象クラスには属性、メソッド、コンストラクターを含めることができますが、コンストラクターを使用してオブジェクトをインスタンス化することはできず、サブクラスによってのみ呼び出すことができます。

2. インターフェイス

インターフェイスは特別なクラスとみなされ、interface キーワードでのみ変更できます。他のユーザーが呼び出すためのインターフェイスが提供されます。 Java のインターフェイスには次の特性があります:

1. インターフェイスには変数とメソッドを含めることができます。変数は暗黙的に public static Final として指定され、メソッドは暗黙的に public abstract (JDK 1.8 より前) として指定されます。 ##2. このインターフェースは多重継承をサポートしています。つまり、1 つのインターフェースが複数のインターフェースを継承 (拡張) できるため、Java のクラスが複数のインターフェースから継承できないという問題が間接的に解決されます。同時に実装される 複数のインターフェイス。クラスがインターフェイスを実装する場合は、そのインターフェイスに抽象メソッドを実装する必要があります。それ以外の場合は、クラスを抽象クラスとして定義する必要があります。

4. 2 つの新しい機能が追加されました。 JDK 1.8 のインターフェイスへ:

(1) デフォルト メソッド: JDK 1.8 では、非抽象メソッド実装をインターフェイスに追加できますが、デフォルト キーワードを使用して変更する必要があります。デフォルトを定義するメソッドは実装では実装できません。ただし、これを呼び出すことができるのは、サブクラスを実装するオブジェクトによってのみです。サブクラスが複数のインターフェイスを実装しており、これらのインターフェイスに同じデフォルト メソッドが含まれている場合、サブクラスはデフォルト メソッドをオーバーライドする必要があります。

(2) 静的メソッド: JDK 1.8 では、静的キーワードを使用してメソッドを変更し、インターフェイス静的メソッドと呼ばれる実装を提供できます。インターフェイスの静的メソッドは、インターフェイス (インターフェイス名.静的メソッド名) を通じてのみ呼び出すことができます。

5. JDK 1.9 では、インターフェイスが再度拡張され、プライベート メソッドとプライベート スタティック メソッドが実装されました。 JDK 1.8ではインターフェース内のメソッドを実装できるため、実装したメソッドを外部に公開したくない場合は、メソッドをプライベートとして定義できます。

3. インターフェイスと抽象クラスの違い

1. 抽象クラスには通常のメソッドを含めることができますが、インターフェイスにはパブリック抽象メソッドのみを含めることができます (JDK 1.8 より前)。 2. 抽象クラスのメンバー変数にはアクセス制限はありませんが、インターフェイス内の変数は public static Final によってのみ変更できます;

3. 1 つのインターフェイスは複数のインターフェイスを継承できますが、クラスは親クラスを 1 つだけ持つことができ、クラスは複数のインターフェイスを実装できます;

4. 抽象クラスは、あるタイプの抽象化であり、インターフェイスは動作の抽象化です。抽象クラスを継承するクラスは「ある」関係を表し、インターフェイスを実装するクラスは「ある」関係を表します。

php 中国語 Web サイト、無料の

Java 入門チュートリアル

が多数あり、オンラインで学習することを歓迎します。

以上が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ヘンタイを無料で生成します。

ホットツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

メモ帳++7.3.1

メモ帳++7.3.1

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

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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