1.接口与类的比较
接口引入了另一个类别的数据类型,和类不同的是,接口永远不能实例化。
只能通过对实现接口的类的一个对象的引用来访问接口实例。不能用new操作符创建接口实例。
所以接口不能包含任何构造器或终结器。
2.抽象类和接口的比较
抽象类 |
接口 |
不能直接实例化,只能通过实例化一个派生类 |
不能直接实例化,只能通过实例化一个实现接口类型。 |
派生类要么自己也是抽象的,要么必须实现所有抽象成员 |
实现接口类型必须是实例化所用接口成员 |
可添加额外的非抽象成员,它们可由所有派生类继承,而不会破坏跨版本兼容性。 |
为接口添加额外的成员会破坏版本兼容性 |
可以声明属性和字段 |
可声明属性但不能声明字段 |
成员可以是实例、虚、抽象或静态的,而且非抽象成员可提供默认实现供派生类使用 |
所用成员都被自动看成是抽象成员,因此不能包含任何实现 |
派生类只能从一个基类派生(单继承) |
实现类型可实现任意多的接口 |
时间: 2024-10-13 01:42:14