抽象(abstract)方法
当父类的某些方法,但又不确定如何实现时,可以将其声明为抽象方法,该方法所在的类称为抽象类。
抽象方法就是没有实现的方法,它没有方法体。
public abstract void abstractMethod();
抽象类
当一个类中含有一个或多个抽象方法时,必须将该类声明为抽象类
abstract class AbstractClass{
public abstract void abstractMethod();
}
通常来说,抽象类会被继承,由其子类来实现它的抽象方法。
abstract关键字
- 用abstract关键字修饰一个方法,该方法就是抽象方法
- 用abstract关键字修饰一个类,该类就是抽象类
- 抽象类的价值更多在于设计,设计好之后由子类来继承并实现抽象类
- 抽象类在框架和设计模式中使用较多
- abstract只能用来修饰类和方法,不能用来修饰属性
抽象类的特点
-
抽象类不能实例化
-
抽象类不一定要包含抽象方法;若一个类有抽象方法,则必须声明为抽象类
-
抽象类可以有任意成员,因为抽象类的本质是类
-
抽象方法不可以有方法体
public abstract void abstractMethod(){} // ×
-
一个类继承了抽象类,就要实现抽象的所有抽象方法,除非子类自己也是抽象类。所谓实现,有方法体就是实现。仅仅使用{}也算实现。
-
抽象方法不可以用private、final、static来修饰