所以,让我说我正在尝试完成一项需要某种形式抽象的任务。
这项任务可以通过子类化或实现接口来完成。
有没有理由倾向于他们中的任何一个?
明智的效率还是明智的呢?
示例
子类
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.");
}
}
答案 0 :(得分:4)
如果界面适合你,那么就倾向于它。它为这种API的客户端提供了更多的自由,因为他可以使用同一个类实现多个接口。
这里没有要考虑的性能方面。对于几乎任何用例,方法调度都可以被认为是免费的。
答案 1 :(得分:0)
您只有方法,因此界面更合适。如果您只关心行为,请使用界面。
答案 2 :(得分:0)
如果我想要继承行为,我倾向于倾向于接口,如果我想要继承结构,我倾向于子类化。如果有疑问,在这两者之间,我可能会考虑接口,因为它们允许多接口继承