Java初探-13.Java抽象类和抽象方法

152 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第6天,点击查看活动详情

Java 抽象类,在Java中用关键字abstract声明的类称为抽象类。可以有抽象方法(abstract修饰的方法,没有主体)以及普通方法。非抽象类是没有抽象方法。

抽象类不能实例化,也就是说不能实例化对象

抽象类声明

abstract class A{
   //abstract method
   abstract void myMethod();

   //普通方法
   void anotherMethod(){
      //do something
   }
}

通过上面抽象类定义:

  • 有些场景不必在父类中实现所有方法。在这些情况下,可以将父类声明为abstract,使得成为一个特殊的类。抽象类派生的子类必须实现父类中声明的所有抽象方法。

  • 抽象类无法实例化,意味着无法创建它的对象。要使用此类,需要创建子类继承它,实现抽象方法

  • 如果子类没有实现父类的所有抽象方法,则子类也必须被声明为abstract

抽象类与普通类

抽象类之外的非抽象类称为 普通类

几个要点:

  1. 除非被子类继承,否则抽象类没有用处,因为不能实例化。
  2. 若类中声明抽象方法,则必须声明类抽象
  3. 可以有非抽象方法

1)抽象方法没有方法体。

2)以分号;)结束方法声明。

3)抽象类必须被继承,以相同的方式重写抽象方法。

注意: 继承抽象类的类必须重写所有抽象方法。

Java 抽象方法

没有方法体的方法被称为抽象方法。必须始终在抽象类中声明,或者换句话说,如果类具有抽象方法,则应该将其声明为抽象方法。

public abstract int myMethod(int n1, int n2);

抽象方法特点

  1. 抽象方法没有方法体。
  2. 如果一个类有抽象方法,必须被声明为abstract
  3. 子类继承一个抽象类,那么必须实现抽象类的所有抽象方法,否则也必须被声明为abstract