ホームページ >Java >&#&チュートリアル >Java インターフェイスはオブジェクト クラスを継承しますか?

Java インターフェイスはオブジェクト クラスを継承しますか?

DDD
DDDオリジナル
2024-10-29 11:08:30657ブラウズ

 Do Java Interfaces Inherit from the Object Class?

Java のインターフェイスはオブジェクト クラスから継承しますか?

Java では、インターフェイスはメソッド シグネチャを宣言し、抽象実装を提供するための設計図として機能します。よくある誤解の 1 つは、インターフェイスが標準クラスと同様にオブジェクト クラスから継承するかどうかです。

オブジェクト クラスからの継承はありません

一般に信じられていることに反して、インターフェイスはオブジェクト クラスから直接継承しません。オブジェクトクラス。これは、デフォルトでは、equals()、hashCode()、toString()、wait() などのメソッドにアクセスできないことを意味します。

インターフェイスでのオブジェクト クラス メソッドの呼び出し

Object から継承していないにもかかわらず、インターフェイスは引き続き Object クラスからメソッドを呼び出すことができます。これは、インターフェイスがスーパーインターフェイスからこれらのメソッドを既に継承している場合を除き、インターフェイスが Object のすべてのパブリック インスタンス メソッドに対応するパブリック抽象メソッドを暗黙的に宣言しているためです。

たとえば、次のコードを考えてみましょう。

<code class="java">interface Employee {
}

public class Test {
    public static void main(String[] args) {
        Employee e = null;
        e.equals(null);
    }
}</code>

このコードでは、Employee インターフェースは、equals() メソッドを明示的に宣言していません。ただし、equals() メソッドが Employee (および他のすべてのインターフェイス) でパブリック抽象メソッドとして暗黙的に宣言されているため、式 e.equals(null) は正常にコンパイルされます。

暗黙的なインターフェイス宣言の理由オブジェクト メソッド

インターフェイス内のオブジェクト メソッドのこの暗黙的な宣言により、インターフェイスはより広範な Java エコシステムとシームレスに対話できるようになります。これにより、インターフェイスは、これらのメソッドを明示的に定義しなくても、オブジェクトの比較、ハッシュ、文字列表現、同期に標準ライブラリ メソッドを利用できるようになります。

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

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