抽象

在Java继承中,抽象类和普通继承关系中的父类作用基本相同,但是却在一般父类的基础上添加了一些限制:

  1. 抽象类不能被实例化,即不能被new对象,其子类只有实现了抽象类中的抽象方法才能被实例化;如果抽象类中没有抽象方法,则可以直接实例化
  2. 抽象类除了包含一般方法,变量,常量,同时自身还包含抽象方法
  3. 抽象类的子类必须实现抽象类中的所有抽象方法,除非它自己也声明为抽象类,但是这样做,子类则不能被实例化
  4. 如果一个类中有抽象方法,则这个类必定是抽象类
  5. 抽象方法和抽象类看上去是多余的,当然实际运用中,抽象类能实现的,我们可以使用一般的继承和接口实现,当然,存在即是有道理的,如果熟练运用的话,可以写更少的代码实现相同的功能

 

 

抽象类举例:

Java基础之抽象和接口

Java基础之抽象和接口

 

接口

从本质上来说,接口是一种特殊的抽象类:

  1. 接口由常量抽象方法组成,接口中的抽象方法可以省略abstract书写
  2. 接口不能被实例化

 

接口举例:

Java基础之抽象和接口

Java基础之抽象和接口

 

 

抽象类和接口比较

相同点:

都不能直接实例化,即不能直接new对象,通过多态性,可由其子类实例化

不同点:

  1. 抽象类包含一般方法,变量,常量,抽象方法;而接口只能包含常量和抽象方法
  2. 抽象类可以有构造方法,而接口不能有构造方法
  3. 一个类可以实现多个接口,但只能继承一个抽象类
  4. 继承抽象类时会引发单继承所带来的局限性,而通过实现接口的方式能够解决单继承带来的局限性

相关文章:

  • 2021-08-11
  • 2022-12-23
  • 2021-12-12
  • 2022-01-09
  • 2021-06-28
  • 2021-10-03
  • 2021-10-31
  • 2022-12-23
猜你喜欢
  • 2021-08-25
  • 2022-01-20
  • 2021-10-26
  • 2021-06-18
  • 2021-12-10
  • 2021-12-02
  • 2021-10-18
相关资源
相似解决方案