2016-04-15 7 views
2

簡単なことは分かりません。 例:Aがインタフェースで、Bは正確に何をして正しくA. を実装したクラスを意味する用量である:Javaインターフェイスと新しいクラス

A name = new B(some_argument); 

私が代わりに

B name = new B(some_argument); 

の本を使用して多くの人々を参照してくださいしかし、私はすることができますインタフェースを使ってオブジェクトを作ることを意味する線量を把握していない。 彼らはなぜこれをしていますか?それらの間にはいくつかの違いがありますか? 時には、他のものより優れていることがありますか? 例えば、反対の用量は機能しません。

答えて

2

技術的に両方の作品。

ほとんどの人が最初の解決策を使用する理由は、インターフェイスではある種のクラスの特定のコントラクト/ APIが定義されているということです。 これは、インプリメンテーションが理解できない、またはインプリメンテーションが交換可能な場合にインターフェイスが使用されることを意味します。

コードをモジュール化したり、クラス間のハードリンク依存性をできるだけ低く抑えたりするために、コードを交換可能かつ汎用的にするための最良の方法です。コードを維持する。

また、複数のインターフェイスを実装できますが、1つのクラスだけを拡張できるため、インターフェイスを使用してクラスに追加の機能を追加できます。

具体的な例: プラグインのSDKを考えてください。いくつかのインターフェースを定義します。 アプリケーション/ SDKを開発した2年後に、このインターフェイスを実装しているクラスの関数を他の人がプラグインしているときに、このインターフェイスを実装するクラスの関数をどのように呼び出すのですか? ;)

関連する問題