抽象类

抽象类主要指不能具体实现的类,体现在该类不能实例化/构造对象并使用abstract修饰。

抽象方法

抽象方法主要指不能具体实现的方法,体现在该方法没有方法体并使用abstract关键字修饰

public abstract void 方法名();

注意事项

  • 抽象类中可以有成员变量、成员方法以及构造方法。
  • 抽象类中可以有抽象方法也可以没有。
  • 拥有抽象方法的类必须是抽象类,因此严格来说,具有抽象方法并使用abstract
    关键字修饰的类才是真正意义上的抽象类

意义

抽象类的意义在于被继承而不是自身实例化对象,当一个类继承另一个类,必须重写抽象方法,否则自身也必须是抽象类,所以抽象类对子类具有规范性

接口

接口是一种比抽象类还抽象的类,因此也不能实例化对象 定义接口的关键字是interface,实现接口的关键字是implements

抽象类和接口之间的区别

  • 定义抽象类的关键字是class,而定义接口的关键字是interface。
  • 继承抽象类的关键字是extends,而实现接口的关键字是implements。
  • 继承抽象类支持单继承,而实现接口支持多实现。
  • 抽象类中可以有构造方法,而接口中不可以有。
  • 抽象类中可以有成员变量,而接口中只可以有常量。
  • 抽象类中可以有成员方法,而接口中只可以有抽象方法。
  • 抽象类中增加方法通常不影响子类,而接口中增加方法通常影响子类。
  • 从jdk1.8开始允许接口中有非抽象方法,但需要使用default关键字修饰。


10月      Java

本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!