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

     

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 相关阅读:
    LeetCode 50: Pow(x, n)
    Codility 1: equilibrium
    LeetCode 49: Anagrams
    crackme160--(5)
    crackme160--(4)
    魔兽显血改键工具的脱壳和修改
    crackme160--(3)
    crackme160--(1)
    python-装饰器
    编程语言C++01-C++入门学习路线
  • 原文地址:https://www.cnblogs.com/weigy/p/12670074.html
Copyright © 2011-2022 走看看