3

私が持っている場合:

public interface One{
    public void method1();
}

public interface Two{
    public void method2();
}

public class AClass implements One, Two{

}

public static void aDiffMethod1(One o){
    o.method1();
}

public static void aDiffMethod2(Two t){
    t.method2();
}

public static void main(String[] args){
     AClass a = new AClass();
     aDiffMethod1(a);
     aDiffMethod2(b);
}

私のコードでは、インターフェイス One のサブタイプであるという事実を使用して AClass のインスタンスを渡すことがあります (つまり、メソッドのパラメーターの型は One になり、型 AClass を渡します)。インターフェイス Two のサブタイプであることを認識して AClass オブジェクトを渡します (渡すメソッドのパラメーターの型は Two であるため、AClass を Two のサブタイプとして渡します)。

異なるインターフェイスのサブタイプであると装って、AClass のインスタンスを異なるメソッドに渡すことはできますか?

これは、インターフェースへのプログラミングによって彼らが意味するものですか?それで問題ありませんか?

4

2 に答える 2

2

はい、それがインターフェースの要点です。

インターフェイスのみを受け入れるメソッドは をOne呼び出すだけmethod1なので、これは安全です。インターフェイスのみを受け入れるメソッドは をTwo呼び出すだけmethod2なので、これも安全です。

于 2012-08-05T13:02:11.300 に答える
2

はい、これでいいです。メソッドがインターフェイスの実装を期待している場合、AClass はそのコントラクトを満たします。

実装ではなくインターフェイスへのプログラミングは、動作操作をメイン クラスに配置するのではなく、インターフェイスにグループ化する設計アプローチです。

于 2012-08-05T13:02:31.847 に答える