zoukankan      html  css  js  c++  java
  • 接口和抽象类的异同

    接口和抽象类的异同

    相同点:

    • 二者都不能实例化

    • 都是引用类型

    • 都可以包含抽象方法

    • 都是用来定义规则的

       

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

    抽象类:使用static修饰的类

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

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

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

    static 和final不能一起使用。

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

    面向对象的设计原则

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

    • 多用组合,少用继承

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

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

  • 相关阅读:
    [考试反思]0904NOIP模拟测试37:守望
    游戏:最短路,拆点
    [考试反思]0903NOIP模拟测试36:复始
    [考试反思]0902NOIP模拟测试35:摆动
    长寿花:dp
    [考试反思]0901NOIP模拟测试34:游离
    赤壁情:dp
    [考试反思]0829NOIP模拟测试33:仰望
    [考试反思]0828NOIP模拟测试32:沉底
    宅男计划:单峰函数三分
  • 原文地址:https://www.cnblogs.com/juddy/p/12859701.html
Copyright © 2011-2022 走看看