抽象类与接口的比较

1.接口与类的比较
接口引入了另一个类别的数据类型,和类不同的是,接口永远不能实例化。
只能通过对实现接口的类的一个对象的引用来访问接口实例。不能用new操作符创建接口实例。
所以接口不能包含任何构造器或终结器。
2.抽象类和接口的比较

抽象类

接口

不能直接实例化,只能通过实例化一个派生类

不能直接实例化,只能通过实例化一个实现接口类型。

派生类要么自己也是抽象的,要么必须实现所有抽象成员

实现接口类型必须是实例化所用接口成员

可添加额外的非抽象成员,它们可由所有派生类继承,而不会破坏跨版本兼容性。

为接口添加额外的成员会破坏版本兼容性

可以声明属性和字段

可声明属性但不能声明字段

成员可以是实例、虚、抽象或静态的,而且非抽象成员可提供默认实现供派生类使用

所用成员都被自动看成是抽象成员,因此不能包含任何实现

派生类只能从一个基类派生(单继承)

实现类型可实现任意多的接口

posted @ 2016-07-29 23:04  流星小子  阅读(156)  评论(0编辑  收藏  举报