• Java 接口和抽象类的区别


    抽象类

    • 抽象类不能被实例化
    • 抽象方法必须由子类重写
    • 子类中的抽象方法不能与父类的抽象方法同名。
    • abstract不能与final并列修饰同一个类
    • abstract 不能与private、static、final或native并列修饰同一个方法。

    接口

    接口是用来建立类与类之间的协议,它所提供的只是一种形式,而没有具体的实现

    • Interface所有方法自动生命为public,当然你可以显示的声明为protected、private,编译会出错!
    • 接口中德成员变量会自动变为为public static final。可以通过类命名直接访问:ImplementClass.name。
    • 实现接口的非抽象类必须要实现该接口的所有方法。抽象类可以不用实现。

    抽象类和接口的区别

      • 语法层次
      • 设计层次 
        • 抽象层次不同。抽象类是对类进行抽象,接口是对行为的抽象。
        • 跨域不同。抽象类所跨域的是具有相似特点的类,而接口却可以跨域不同的类。我们知道抽象类是从子类中发现公共部分,然后泛化成抽象类,子类继承该父类即可,但是接口不同。实现它的子类可以不存在任何关系,共同之处。is-a和like-a
        • 设计层次不同。抽象类是自底向上抽象而来的,接口是自顶向下设计出来的。
  • 相关阅读:
    ASP.NET MVC 学习之路-2
    ASP.NET MVC 学习之路-1
    mvp框架
    Linq基础
    C# Lambda表达式
    三层架构基础
    Protobuf-net基础
    AutoResetEvent和ManualResetEvent
    解题报告——POJ 2299
    解题报告——POJ 2726
  • 原文地址:https://www.cnblogs.com/linwenbin/p/10500681.html
Copyright © 2020-2023  润新知