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、 接口可以继承多个接口,多重继承;而一个抽象类只能继承一个父类,且这个父类必须是抽象类。

     

  • 相关阅读:
    数据库生成说明
    Android 的 SurfaceView 双缓冲应用
    一些and知识 和ui
    weibo11
    android总结
    weibo14
    weibo9
    weibo12
    weibo10
    在线人数的统计
  • 原文地址:https://www.cnblogs.com/lcxBlog/p/4498296.html
Copyright © 2011-2022 走看看