0

ですから、何らかの形の抽象化を必要とするタスクを達成しようとしているとしましょう。

このタスクは、サブクラス化するか、インターフェイスを実装することによって達成できます。

それらのいずれかに傾く理由はありますか?

効率性や慣例はどうですか?

サブクラス化

public abstract class Main {

    public abstract void doSomething();

}
public class SubMain extends Main {

    public static void main(String[] args) {
        new SubMain().doSomething();

    }

    @Override
    public void doSomething() {
        System.out.println("Example Method.");

    }

}

インターフェイスの実装

public interface TestInterface {
    public abstract void doSomething();

}
public class MainWithInterface implements TestInterface {

    public static void main(String[] args) {
        new MainWithInterface().doSomething();

    }

    @Override
    public void doSomething() {
        System.out.println("Example Method.");

    }
}
4

3 に答える 3

4

インターフェイスがうまく機能する場合は、それに傾倒してください。同じクラスで複数のインターフェースを実装できるため、このような API のクライアントにより多くの自由が与えられます。

ここで考慮すべきパフォーマンス面はありません。メソッドディスパッチは、ほとんどすべてのユースケースで無料と見なすことができます。

于 2012-10-24T09:56:33.820 に答える
0

そこにはメソッドしかないので、インターフェースの方が適切です。動作のみに関心がある場合は、インターフェースを使用してください。

于 2012-10-24T09:57:16.730 に答える
0

継承された動作が必要な場合はインターフェイスに傾倒し、継承された構造が必要な場合はサブクラス化する傾向があります。疑わしい場合は、これら 2 つの間で、複数のインターフェイスの継承が可能であるため、おそらくインターフェイスを検討します。

于 2012-10-24T10:00:00.117 に答える