• 概述
  • 设计理念
  • 应用场合
  • interface vs. abstract class
  • 修改记录

 

概述


网上大多数资料,在比较 interface 和 abstract class 区别时,往往是先从语法,然后实现(编程),最后是设计理念和应用场合。我觉得这样不妥!设计理念才决定了,它们在语法、编程和应用上的差异。

另外,作为 C# 程序员的我,开始会忘记——继承 abstract class,实现 interface 接口。为什么?编程语言决定的。因为,C# 中,不区分继承,还是实现。无论是 abstract class,还是 interface,.net 都采用相同语法。这样做可以理解,但这也会隐藏事物的本质。而 Java 区分得很清楚,继承 extends 类,实现 implement 接口。如下所示,定义抽象类 M 和接口 IM。

abstract class M
{
    abstract void Method();
}

相关文章: