zoukankan      html  css  js  c++  java
  • 接口 与 抽象类

     

     接口 VS 抽象类

      A. 相似之处

        1、不能实例化;
        2、包含未实现的方法声明;
        3、派生类必须实现未实现的方法,抽象类是抽象方法,接口则是所有成员(不仅是方法包括其他成员);

          4、在接口中增加一个成员,在抽象类中增加一个抽象方法,所有的继承了接口/抽象类的子类都必须实现这个成员/抽象方法;

        5、抽象类A可以继承抽象类B,接口C可以继承接口D。

               6、都可继承多个接口

      B. 不同之处

        1、接口定义类的公共行为,抽象类定义类的公共实现
        2、一个类只能继承自一个类(抽象类),但是可以同时实现多个接口;抽象类一般用于实现单继承,接口一般用于实现多继承;

        3、抽象类中可以包含的成员类型,只有方法、属性、索引器、事件可以被接口所包含;

        4、可以为抽象类中的成员添加“访问修饰符”,接口中的成员不能;
        5、接口中不能有实现,抽象类中可以有未实现成员也可以有实现的成员;

        6、接口中未实现的成员必须在子类中实现,抽象类中未实现的方法必须在子类中重写;

        7、如果在接口中增加一个成员,所有实现这个接口的类都必须实现这一成员,如果有很多个类继承了这个接口,就会增大工作量。如果在抽象类中增加一个可供子类继承,且不需要在子类中重写的东西(如,一个属性、一个函数),那么它所有的派生类都可以直接使用这个东西。

        8、抽象类A可以继承抽象类B,接口不能继承类,更不要说抽象类了。

        9、 接口可以继承多个接口,多重继承;而一个抽象类只能继承一个父类,且这个父类必须是抽象类。

     

  • 相关阅读:
    多测师讲解htm_L标题标签001_高级讲师 肖sir
    Shell特殊变量介绍与实践 $0
    shell 变量定义技巧总结
    shell 环境变量的知识小结
    前端 chrome查看html样式基本操作
    shell 命令 env
    date 命令
    shell 命令 set命令
    shell export 命令
    前端 html span标签
  • 原文地址:https://www.cnblogs.com/lcxBlog/p/4498296.html
Copyright © 2011-2022 走看看