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-24T10:00:00.117 回答
0

你那里只有方法,所以接口更合适。如果您只关心行为,请使用接口。

于 2012-10-24T09:57:16.730 回答