zoukankan      html  css  js  c++  java
  • 抽象类和接口的比较

    参考:https://baijiahao.baidu.com/s?id=1622053733155304478&wfr=spider&for=pc

    1、抽象类:

      抽象类不能创建实例,只能作为父类被继承。

    1)抽象方法是只有函数声明,不包含实现,可以看成是没有具体实现的虚方法

    2)抽象类不能实例化

    3)抽象类可以包含但不一定包含抽象属性和抽象方法,但是有抽象方法,就一定要把这个类声明为抽象类

    4)抽象类的具体实现子类一定要全部实现抽象基类类的抽象方法

    5)抽象派生类可以覆盖基类的抽象方法,也可以不覆盖。如果不覆盖,则其具体派生类必须覆盖他们。

    2、接口:

    1)接口不能被实例化

    2)接口只能包含方法声明

    3)接口的成员包括方法、属性、索引器、事件

    4)  接口中不能包含常量、字段(域)、构造函数、析构函数、静态成员

    3、区别:

    1)抽象类可以有构造函数,接口中不能有构造函数

    2)抽象类中可以有普通成员变量,接口汇总没有普通成员变量

    3)抽象类中可以包含静态方法,接口中不能包含静态方法

    4)  一个类可以实现多个接口,但是只能继承一个抽象类

    5)接口可以被多重实现,抽象类只能被单一继承。

    6)如果抽象类实现接口,则可以把接口中方法映射到抽象类中作为抽象方法不必实现,而在抽象类的子类中实现接口中方法

    4、相同点:

    1)都可以被继承

    2)都不能实例化

    3)都可以包含方法声明

    4)具体(非抽象)派生类必须实现未实现的方法

  • 相关阅读:
    HTML th nowrap 属性
    C 语言实例 – 判断闰年
    Java MySQL 连接
    Linux shapecfg命令
    C 简介
    Java 之 HashSet 集合
    Java 之 Set 接口
    Java 之 LinkedList 集合
    Java 之 List 接口
    JavaScript 之 事件(详解)
  • 原文地址:https://www.cnblogs.com/juneyss/p/11383352.html
Copyright © 2011-2022 走看看