ホームページ >Java >&#&チュートリアル >Javaインターフェースは継承できますか?

Javaインターフェースは継承できますか?

青灯夜游
青灯夜游オリジナル
2019-11-18 14:36:527610ブラウズ

Javaインターフェースは継承できますか?

#Java インターフェイスは継承できますか?

Java インターフェースは継承可能であり、多重継承ですが、インターフェースを継承できるのはインターフェースのみであり、クラスはインターフェースを実装することしかできません。インターフェイスは別のインターフェイスまたは複数のインターフェイスを継承でき、共通クラスは複数のインターフェイスを実装できます。

インターフェイスは、定数値とメソッド定義の集合です。インターフェイスは特別な種類の抽象クラスです。

Java クラスは単一継承です。 classB classA

java インターフェイスを複数のソースから継承できるように拡張します。 Interface3 は Interface0、Interface1、interface を拡張します……

クラスの多重継承が許可されない主な理由は、A が B と C を同時に継承し、B と C が D メソッドを持っている場合です。同時に、Aさんはその方法をどうやって決めるのか、どちらを継承するのか。

しかし、インターフェイスにはそのような問題はなく、インターフェイスはすべて抽象メソッドであり、誰が継承するかは問題ではないため、インターフェイスは複数のインターフェイスを継承できます。

注:

1) クラスがインターフェイスを実装する場合、そのインターフェイスのすべてのメソッドを実装する必要があります。

2) メソッドの名前、戻り値の型、およびパラメーターは、インターフェイスのものとまったく同じである必要があります。メソッドの戻り値の型が void でない場合、メソッド本体には少なくとも 1 つの return ステートメントが必要です。

3) インターフェイス メソッドはデフォルトで public 型であるため、実装時に public に変更する必要があります (そうしないと、デフォルトで protected 型になり、メソッドの使用範囲が狭まります)。

例:

interface A{
    void a1();
}
 
interface B{
    void b1();
}
 
interface C extends A,B{//注意该语法只对接口的继承是合法的
    void c1();
}
 
class D implements C{
 
    @Override
    public void a1() {}
 
    @Override
    public void b1() {}
 
    @Override
    public void c1() {}
}

インターフェイスの特性:

1. インターフェイスは暗黙的に抽象です。インターフェイスを宣言するとき、抽象キーの文字。

2. インターフェイス内の各メソッドも暗黙的に抽象であるため、宣言時に abstract キーワードも必要ありません。

3. インターフェイス内のすべてのメソッドはパブリックです。

4. コンパイル時、public abstract 修飾子は、インターフェースで定義されたメソッドに自動的に追加されます。

5. Java インターフェースのメンバー変数は、public static Final と共同でのみ変更できます。値は、コンパイル中に自動的に追加されるため、public static Final を記述する必要はありません。

以上がJavaインターフェースは継承できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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