zoukankan      html  css  js  c++  java
  • java接口和抽象类的比较

    相同点:

    都位于继承的顶端,用于被其他实现或继承;

    都不能实例化;

    都包含抽象方法,其子类都必须覆写这些抽象方法;

     

    区别:

    抽象类为部分方法提供实现,避免子类重复实现这些方法,提供代码重用性;接口只能包含抽象方法;

    一个类只能继承一个直接父类(可能是抽象类),却可以实现多个接口;(接口弥补了Java的单继承)

     

    二者的选用:

    优先选用接口,尽量少用抽象类;

    需要定义子类的行为,又要为子类提供共性功能时才选用抽象类;

    我的总结:

    接口不能有构造函数,抽象类是可以有构造函数的,

    abstract可以定义构造函数(包括带函数的构造函数),因为要保证其子类在创建的时候能够进行正确的初始化,但是Abstract类不能被实例化。

     

    知识点:如果不可以或者没有创建对象,那么我们必须加上static修饰,不能用对象调用,就只好用类去调用。

  • 相关阅读:
    设计模式之单例模式
    设计模式之原型模式
    设计模式之建造者模式
    设计模式之抽象方法模式
    设计模式之简单工厂模式
    java中内存分配
    java引用类型
    Oracle
    Oracle
    Oracle
  • 原文地址:https://www.cnblogs.com/fanweisheng/p/11131590.html
Copyright © 2011-2022 走看看