抽象类与接口的比较

本文对比了接口与抽象类的特点,包括它们如何被实例化、成员实现方式、成员类型的差异等,并探讨了这两种机制在软件设计中的应用。

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

抽象类

接口

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

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

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

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

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

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

可以声明属性和字段

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

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

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

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

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

转载于:https://www.cnblogs.com/gylhaut/p/5719898.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值