【发布时间】:2012-08-04 02:23:20
【问题描述】:
我有一个抽象类说 CTest,它只包含抽象方法 f1() 而没有别的。类似地,我有一个接口ITest,只有方法f1()。这里 CTest 抽象类和 ITest 接口都做同样的事情。
一个区别是,接口提供了灵活性,它可以在任何已经派生自其他类但抽象类不能的类中实现。
除了上面的区别,这两者之间的实际区别是什么?哪一个在这里有效(CTest 或 ITest)?我什么时候应该用什么? OO 设计中的任何特定场景以及对此的任何一般性建议都是有帮助的
【问题讨论】:
-
您对效率感到好奇吗?在Java中,接口方法调用内部使用
invokeinterface指令,即comparatively expensive到invokevirtual。 -
看看这可能对你有帮助..stackoverflow.com/questions/1913098/…
标签: c# java oop class interface