ホームページ >Java >&#&チュートリアル >Java バージョン間のインターフェース構文の相違点と、抽象クラスとインターフェース間の類似点および相違点

Java バージョン間のインターフェース構文の相違点と、抽象クラスとインターフェース間の類似点および相違点

PHPz
PHPz転載
2023-05-06 14:52:131221ブラウズ

インターフェースとは何ですか?

インターフェースといえば、USB は誰もがよく知っています~
インターフェースは標準であり仕様です。
注: インターフェースが策定された後は、ユーザーと実装者の両方が標準に従う必要があります。

Java バージョン間のインターフェース構文の相違点と、抽象クラスとインターフェース間の類似点および相違点

インターフェース構文: (JDK7.0)

(1) キーワード: インターフェース
(2) 構文: インターフェース インターフェース名{}
( 3) インターフェイスがコンパイルされると、対応する .class ファイルが生成されます
(4) インターフェイスはオブジェクトを作成できませんが、インターフェイス名への参照を宣言できます;
(5) コンストラクター メソッドはありませんインターフェイス内
(6 ) インターフェイス内のすべてのプロパティは public static 定数です
(デフォルトは public static Final)
(7) インターフェイス内のすべてのメソッドは public abstract メソッドです
(デフォルトは: パブリック抽象変更)
注: インターフェース内のメソッドのデフォルトのアクセス許可は public です;
クラス内のメソッドのデフォルトのアクセス許可はデフォルトです

インターフェースの実装クラス:

構文:

class クラス名implements インターフェース名 {}

注:implementation のキーワードはimplements
(1) 実装クラスの場合抽象クラスになりたくないので、インターフェースを上書き (実装) する必要があります。 すべてのメソッド
(2) 実装クラスがインターフェース内のメソッドをオーバーライドする場合、アクセス許可は public である必要があります
Use:
(1) インタフェース型の参照には、対応する実装クラスのオブジェクトのみを格納可能 多態性アプリケーションの反映
(2) 構文:

インタフェース名参照名 = 新しい実装クラスname (実際のパラメータ);

注: インターフェイス 複数の実装クラスを定義できます

インターフェイスの継承: (非常に重要~)

インターフェイス間の関係は多重継承です。

(1) インターフェイスです。複数の親インターフェイスを同時に継承できます。

(2) 構文:

インターフェイス インターフェイス名は、親インターフェイスを拡張します。名前 1、親インターフェース名 2{}

クラスとインターフェース間の関係は複数実装です

(1) クラスは複数のインターフェースを同時に実装できます

(2) 構文:

class class Nameimplements インターフェース名 1, インターフェース名 2 {}

(3) クラスが複数のインターフェースを実装する場合、同時に、抽象クラスになりたくない場合は、すべてのインターフェイスのすべてのメソッドを実装する必要があります
(インターフェイスを実装する親インターフェイスのすべてのメソッドを含む)

クラスは複数のインターフェイスを実装できます同時にクラスを継承する

#(1) クラスが親クラスを継承し、同時に複数のインターフェイスを実装する場合、最初に継承してから実装する必要があります

(2)構文:

クラス クラス名は親クラス名を拡張し、親インターフェイス 1、親インターフェイス 2 を実装します{}

注: 最初に拡張してから

## を実装する必要があります#クラス間の存在: 単一継承----extends

クラスとインターフェース間の存在: 複数の実装--- ----implements

インターフェース間に存在: 多重継承--- ---extends

インターフェイスの影響:

1. インターフェイスはクラスとインターフェイス間の多重継承と多重実装の関係により、ポリモーフィズムをより多様かつ複雑にします。 2. 強制的な型変換の 2 つの当事者のうちの 1 つだけがインターフェイス型である場合、コンパイルは確実に成功し、実行されます。 状況は 2 つあります:

a. 変換された参照に格納されている実際のオブジェクト型がいずれかの型である場合b. 変換された参照に格納されている実際のオブジェクト型が変換される型ではない場合、コンパイルは成功しますが、実行時にエラーが報告され、エラー メッセージ:

Java.lang.ClassCastException (型変換例外)

インターフェースの構文: (JDK8.0)

(1) デフォルトのメソッド:

a. public デフォルト戻り値型メソッド名 (仮パラメータリスト) {

// メソッドの実装部分

}


b . 注: インターフェース内のメソッドはデフォルトで表されます。
c. デフォルトのメソッドのアクセス権限は public です

d. デフォルトのメソッドはオーバーライドできますが、オーバーライドされたときのアクセス修飾子は public

(2) 静的メソッド:

a. public static 戻り値型メソッド名(仮パラメータリスト) {

# b. 静的アクセス権インターフェイス内のメソッドは public

#インターフェイスの構文: (JDK9.0)—(プライベート メソッド)

(1) インターフェイスでは、9.0 以降、メソッドを次のように指定できます。 updated by private

(2) 構文:

private 戻り値型メソッド名 (仮引数リスト) {

// メソッド実装

}

(3) プライベート メソッドはインターフェイスの内部使用に使用され、通常はコードの冗長性を減らすために他のメソッドの共通ロジック部分を抽出します。

インターフェイスの分類

定数インターフェイス:

インターフェイスには属性のみがあり、メソッドはなく、アプリケーションはほとんどありません。

空のインターフェイス:

通常はマーク インターフェイスと呼ばれ、属性や抽象化はありません。インターフェイス内;
例: IO オブジェクトをシリアル化するときは

関数型インターフェイスを使用します:

インターフェイスには抽象メソッドが 1 つだけあります (静的でデフォルトでは関係ありません)。ラムダ式で広く使用されています

抽象クラスとインターフェイスの違いは何ですか? (覚えておいてください~)

Java バージョン間のインターフェース構文の相違点と、抽象クラスとインターフェース間の類似点および相違点

以上がJava バージョン間のインターフェース構文の相違点と、抽象クラスとインターフェース間の類似点および相違点の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。