以下接口和抽象类有什么区别:
public interface MyInterface
{
public int get1();
public int get2();
public int get3();
}
public abstract class MyAbstract
{
public abstract int get1();
public abstract int get2();
public abstract int get3();
}
面试官不相信以下答案,他想听点别的:
我必须扩展 MyAbstract,然后我不能有更多的扩展,而在实现 MyInterface 的情况下,我可以继承。
如果使用“实现 MyInterface”,我必须提供所有三种方法的实现,而在“扩展 MyAbstract”的情况下,我愿意发扬抽象性。
设计观点:所有库都在接口上工作,而不是在抽象类上,使用接口是一种很好的设计实践,这样我在将来的任何时候都可以创建任何可以在库的某些方法中使用的类(实现 MyInterface)。(与第一点基本相同)
还能有什么?我不关心接口/抽象类等中的变量。如何决定使用哪一个?