• 接口和抽象类的异同


    接口和抽象类的异同

    相同点:

    • 二者都不能实例化

    • 都是引用类型

    • 都可以包含抽象方法

    • 都是用来定义规则的

       

    区别抽象类接口
    多继承 子类只能继承一个抽象类(继承关系是单继承) 子类可以实现多个接口(接口与接口之间可以进行多继承)
    成员 抽象类中可以有实例成员、类成员、抽象方法 接口中只能有抽象方法和常量,在JDK8.0之后可以有Static和default方法
    实现 子类使用extends继承抽象类 子类使用implements实现接口
    成员变量修饰符 抽象类中既可以定义常量也可以定义变量 接口中只能定义常量(使用public static final修饰)
    子类实现 子类在实现抽象方法时不允许缩小访问权限 子类在实现接口中的抽象放大时必须指定为public
    构造方法 抽象类中可以有构造方法 接口中不能定义构造方法
    最高层 类的最高层是Object 接口没有最高层

    抽象类:使用static修饰的类

    抽象类不一定有抽象方法,有抽象方法的一定是抽象类

    抽象类不能被实例化的原因:

    应为抽象类中有抽象方法,抽象方法没有方法体,抽象类不是完整的类,因此不能实例化。

    static 和final不能一起使用。

    子类必须实现抽象类中所有的抽象方法,否则子类就要定义为抽象类

    面向对象的设计原则

    • 摘取代码中变化的行为,形成接口

    • 多用组合,少用继承

    • 针对接口编程,不依赖于具体实现

    • 针对扩展开放,针对修改关闭

  • 相关阅读:
    观望Java-03:面向对象
    观望Java-02:基础语法
    观望Java-01:Java简介
    组件化开发——组件生命周期
    pug模板引擎——jade
    解决eclipse调试程序时source not found的问题
    Android中设置中文粗体的方法
    svn中编辑log message
    TortoiseSVN使用
    用TorToiseGit来管理github上的项目
  • 原文地址:https://www.cnblogs.com/juddy/p/12859701.html
Copyright © 2020-2023  润新知