开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第6天,点击查看活动详情
Java 抽象类,在Java中用关键字abstract声明的类称为抽象类。可以有抽象方法(abstract修饰的方法,没有主体)以及普通方法。非抽象类是没有抽象方法。
抽象类不能实例化,也就是说不能实例化对象。
抽象类声明
abstract class A{
//abstract method
abstract void myMethod();
//普通方法
void anotherMethod(){
//do something
}
}
通过上面抽象类定义:
-
有些场景不必在父类中实现所有方法。在这些情况下,可以将父类声明为
abstract,使得成为一个特殊的类。抽象类派生的子类必须实现父类中声明的所有抽象方法。 -
抽象类无法实例化,意味着无法创建它的对象。要使用此类,需要创建子类继承它,实现抽象方法
-
如果子类没有实现父类的所有抽象方法,则子类也必须被声明为
abstract。
抽象类与普通类
抽象类之外的非抽象类称为 普通类。
几个要点:
- 除非被子类继承,否则抽象类没有用处,因为不能实例化。
- 若类中声明抽象方法,则必须声明类抽象
- 可以有非抽象方法
1)抽象方法没有方法体。
2)以分号(;)结束方法声明。
3)抽象类必须被继承,以相同的方式重写抽象方法。
注意: 继承抽象类的类必须重写所有抽象方法。
Java 抽象方法
没有方法体的方法被称为抽象方法。必须始终在抽象类中声明,或者换句话说,如果类具有抽象方法,则应该将其声明为抽象方法。
public abstract int myMethod(int n1, int n2);
抽象方法特点
- 抽象方法没有方法体。
- 如果一个类有抽象方法,必须被声明为
abstract。 - 子类继承一个抽象类,那么必须实现抽象类的所有抽象方法,否则也必须被声明为
abstract