zoukankan      html  css  js  c++  java
  • 抽象类和接口的区别

     

    接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的,

    另外,实现接口的一定要实现接口里定义的所有方法,而实现抽象类可以有选择地重写需要用到的方法,一般的应用里,最顶级的是接口,然后是抽象类实现接口,最后才到具体类实现。

    还有,接口可以实现多重继承,而一个类只能继承一个超类,但可以通过继承多个接口实现多重继承,接口还有标识(里面没有任何方法,如Remote接口)和数据共享(里面的变量全是常量)的作用.

    ——————————————————————–

    1.接口可以多重继承 ,抽象类不可以

    2.接口定义方法,不给实现;而抽象类可以实现部分方法

    3.接口中基本数据类型的数据成员,都默认为static和final,抽象类则不是

    如果事先知道某种东西会成为基础类,

    那么第一个选择就是把它变成一个接口。

    只有在必须使用方法定义或者成员变量的时候,才应考虑采用抽象类。

    ——————————————————————–

    定义的关键字:abstract class;interface;

    组成:常量,变量,抽象方法,普通方法,构造方法;全局常量,抽象方法;

    权限:可以是各种权限;只能是public;

    关系:抽象类可以实现多个接口;接口不能实现抽象类;

    使用:子类利用extends;子类利用implements实现接口;

    涉及的设计模式:模板设计模式;工厂,代理设计模式;

    局限性:一个子类只能继承一个抽象类;一个子类可以继承多个接口;

    如果抽象类和接口都能实现的操作,一般选择接口,因为可以避免单继承局限;

  • 相关阅读:
    使用ar_receipt_api_pub.apply失误
    部门组织架构和岗位变更
    值集不能修改的原因
    ShopEx安装过程
    javascript二分法
    增加TableSpace
    刚毕业的大学生,你到底为什么被解雇掉了?(转)
    oracle EBS关闭窗口出现红条(进度/进展)
    分享一个jQuery的时间轴插件:TimergliderJS
    分享另外一个jQuery的超酷幻灯插件:jQuery Chop Slider 2.0
  • 原文地址:https://www.cnblogs.com/weigy/p/12670074.html
Copyright © 2011-2022 走看看