java - 为什么接口的方法的访问修饰符只能是public不能是protected?
PHP中文网
PHP中文网 2017-04-17 17:32:01
0
5
1057

为什么抽象类的方法的访问修饰符可以是public和protected,而接口的方法的访问修饰符只能是public?

或者说,

接口的方法的访问修饰符为什么不能是protected?

PHP中文网
PHP中文网

认证0级讲师

全員に返信(5)
PHPzhong

個人的な推測:

  • 言語設計者は、これによりインターフェイス アクセス モデルが複雑になると感じるかもしれません。

  • インターフェイスの実装を担当するクラスにとって、実装とインターフェイスが同じパッケージにない場合、保護されたメソッドを実装する必要がありますか?

以下で 2 つの例を使用して説明します。最初の例では、保護されたインターフェイス メソッドが意味をなさないように感じられます。もう一つは考えさせられますが、まったく意味がありません。

たとえば、パッケージ sample.interface の下に ISomething があります。

リーリー

次のケースは奇妙です。

リーリー

さらに意味がわかりません:

リーリー

このようにして、クラスの実装とインターフェースが 1 つのパッケージの下に置かれます。これは一体どういうことなのでしょうか? 複数のインターフェイスを実装する必要があるかもしれませんが、それらを個別に実装することはできません。 。 。

いいねを押す +0
阿神

インターフェイスは、システム アーキテクチャの設計方法においてより重要な役割を果たし、主にモジュール間の通信コントラクトを定義するために使用されます。
抽象クラスはコード実装で役割を果たし、主にコードの再利用を実現するために使用されます。

いいねを押す +0
小葫芦

抽象とインターフェイスは異なる状況で使用されます。前者はパラメータの継承を前提にオーバーライドされますが、ターゲットはその直接または間接の親クラスであり、保護されたアクセス許可が許可されます。インターフェイスは通常、リスナーなどの別のクラスのコールバックに使用されます。保護されたアクセス許可がある場合、リスナー インスタンスを取得したとしても、そのメソッドを取得できないため、コールバック自体は意味がありません。
少し個人的な意見です、間違いがあればご指摘ください

いいねを押す +0
迷茫

インターフェースとは何ですか?インターフェースはinterfaceと書かれており、外部とのやり取りに使用されますが、protectedと書くとどうやって外部とやり取りできるのでしょうか?

インターフェイスは、渡されたオブジェクトが特定のメソッドを実装する必要があることを規定するために使用されます。実装されたメソッドを呼び出すことができない場合、この規定にはどのような意味があるのでしょうか?何を着ても対象は同じなので、どちらとも言えません。

いいねを押す +0
Peter_Zhu

インターフェイスは実装のためのものであり、継承関係や近親者ではありません。通貨マネー = 1^n の場合、彼にお金の分け前を与えることはできず、彼はそれを楽しむことができません。
プロテクトは継承されたサブクラスに表示されます。それがあなた自身の場合は、すべてのお金を彼に継承するだけです。
インターフェイスが保護するように設定されている場合、それは愛人または愛人のいずれかであり、これは違法です。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート