在java中,一个类前面加了abstract关键字,就变成了抽象类。
方法也有抽象方法,抽象方法只有方法名,没有方法的实现。
抽象类其实就只是一个约束,
我们定义一个抽象类和抽象方法如下:
//abstract抽象类
public abstract class Action {
//abstract抽象方法,只有方法名字,没有方法实现
public abstract void dosomething();
}
我们尝试着用另外一个类去继承这个类,发现这个Action类无法被继承。在这里申明一点:
抽象类的所有方法,在被其他子类继承后,都必须要重写实现它的方法。
抽象类存在的意义就是被子类继承然后重写方法。
java类是单继承的,但是接口可以多继承。
我们再尝试着new这个抽象类,结果失败了。
- 抽象类无法实例化,它只能被继承
- 抽象类里面可以有普通方法,但是抽象方法必须在抽象类中。
- 抽象类的意义:简化代码,提高开发效率。