Java基础之——抽象类的基本使用
抽象类
如果父类的方法本身不需要实现任何功能,仅仅是为了定义方法签名,目的是让子类去覆写它,那么,可以把父类的方法声明为抽象方法
把一个方法声明为abstract,表示它是一个抽象方法,本身没有实现任何方法语句
抽象方法:使用关键字abstract修饰的方法,没有方法体
抽象类:使用关键字abstract修饰的类,抽象方法所在的类,即为抽象类
抽象类必须被继承
public abstract class Animal {
public abstract void eat(); //代表吃东西,但具体吃什么不确定
//抽象类里面可以有非抽象的方法
public void normal() { }
}
特点
因为抽象类本身被设计成只能用于被继承,因此,抽象类可以强迫子类实现其定义的抽象方法,否则编译会报错
抽象方法实际上相当于定义了“规范”
-
无法使用new来实例化一个抽象类
-
用一个子类来继承抽象父类,并覆写父类所有抽象方法;或者子类就是抽象类
-
抽象类可以拥有非抽象方法、成员变量、构造方法
-
抽象类不一定有抽象方法,但有抽象方法的类一定是抽象类