下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

软件设计:接口与抽象类的异同

作者:edison男爵     来源: https://www.cnblogs.com/hao-edison/p/10686172.html点击数:1018发布时间: 2020-04-04 18:28:51

标签: C++java软件工程

  抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。

  通常在编程语句中用abstract修饰的类是抽象类。在C++中,含有纯虚拟函数的类称为抽象类,它不能生成对象;在java中,含有抽象方法的类称为抽象类,同样不能生成对象。

  接口与抽象类的异同

  相同点

  1:都无法实例化。2.都可以包含抽象方法。3.都可以有静态方法(有方法体)

  异同点

  1.抽象类可以有成员方法的实现,而接口不能有成员方法的实现,只能声明,不能有方法体。

  2.抽象类可以有成员变量,接口只有静态常量

  3.在接口里面无法声明final级别的方法,而抽象类是可以的

  4.抽象类里面的抽象方法必须自己显示写出来,而接口是缺省的,无需添加

  5.类只能单根继承,接口可以多实现

  6.接口所有的方法都是publicabstract,抽象类里面还可以有别的访问级别的方法

  7.接口只能继承接口,类只能继承类

  8.接口可以继续多个接口,类只能继承一个类

  9.接口没有构造器,类有构造器

  抽象类是不完整的,它只能用作基类。在面向对象方法中,抽象类主要用来进行类型隐藏和充当全局变量的角色。

  在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。

赞(12)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程