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

    抽象类:
    类:不能创建对象,但是可以声明对象的引用
    方法:只有定义,没有实现,必须为public或者protected,缺省情况下默认为public。
    1.如果一个类中有抽象方法,则该类必须用abstract修饰
    2.子类继承一个抽象类,如果子类不希望继续抽象,那么就必须实现父类的抽象方法
    3.抽象类其实也有构造方法,但是在子类中可以使用super()调用。
    4.抽象类中可以没有抽象方法,可以拥有非抽象方法。

    接口:
    接口中可以含有变量和方法。变量会被隐式的指定为public static final变量,且只能是public static final变量;而方法会被隐式的指定为public abstract方法。
    接口中所有的方法不能具体的实现,也就是说,接口中的方法必须都是抽象方法。

    区别:
    1、抽象类可以提供成员方法的实现细节,而接口中只能存在public abstract方法;
    2、抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的;
    3、抽象类中可以有静态代码块和静态方法,而接口中不能含有静态代码块和静态方法;
    4、一个类只能继承一个抽象类,缺可以实现多个接口。

    设计:
    抽象类是对一种事务的抽象,即对类抽象,而接口是对行为的抽象。抽象类是对整个类整体进行抽象,包括属性、行为,但接口却是对类局部(行为)进行抽象。可以说,抽象是一个“是不是”的关系,而接口实现则是“有没有”的关系,如果一个类继承了某个抽象类,则子类必定是抽象类的种类,而接口实现则是有没有、具备不具备的关系。

  • 相关阅读:
    IT题库-134 | String、StringBuffer和StringBuilder的区别
    Java NIO 总结
    Java 性能分析工具-JProfiler
    Java 性能分析工具-MAT
    java 获取dump文件
    GC总结
    String总结
    堆-对象的分配与回收过程
    java 生产环境调优排查总结
    记一次因为Gradle与Lombok不兼容导致编译时的内存溢出 Expiring Daemon because JVM heap space is exhausted
  • 原文地址:https://www.cnblogs.com/BobXie85/p/6851955.html
Copyright © 2011-2022 走看看