接口和抽象类

类似之处

       接口和抽象类都包含可以由派生类继承的成员。接口和抽象类都不能直接实例化,但可以声明这些类型的变量。

       如果这样做,就可以使用多态性把继承这两种类型的对象指定给他们的变量。接着通过这些变量来使用这些类型的成员,但不能直接访问派生对象的其他成员。

区别

      派生类只能继承一个基类,相反,类可以使用任意多个接口。

      抽象类可以拥有抽象成员(没有代码体,且必须在派生类中实现,否则派生类本身必须也是抽象的)和非抽象成员(他们拥有代码体,也可以是虚拟的,这样就可以在派生类中重写)。另一方面,接口成员必须都在使用接口的类上实现---他们没有代码体。

     接口成员是公共的,但抽象类的成员可以是私有的、受保护的、内部的或受保护的内部成员(其中受保护的内部成员只能在应用程序的代码或派生类中访问)。此外,接口不能包含字段、构造函数、析构函数、静态成员或常量。

     抽象类主要用作对象系列的基类,共享某些主要特征,例如,共同的目的和结构。接口则主要用于类,这些类在基础水平上有所不同,但仍可以完成某些相同的工作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值