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

    作者:edison男爵更新于: 2020-04-04 18:28:44

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

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

      接口与抽象类的异同

      相同点

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

      异同点

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

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

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

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

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

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

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

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

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

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

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

课课家教育

未登录