抽象类
abstact定义的一个抽象类
package oop.demo08;
// abstract 抽象类
// extends: 只能单继承(多继承通过接口实现)
public abstract class Action {
//约束 有人帮我们实现
// 抽象方法: 只有方法名字,没有方法的实现
public abstract void doSomething();
//1. 不能new抽象类,只能靠子类去实现它
//2. 抽象类里面可以写普通方法,但是抽象方法必须在抽象类中
}
package oop.demo08;
// 抽象类的所有方法,继承了它的子类,都必须要实现它的方法
// 除非:子类也是一个抽象类
public class A extends Action {
@Override
public void doSomething() {
}
}
package oop.demo08;
public class APP {
public static void main(String[] args) {
// Action action = new Action();
}
}
思考:
- 抽象类不能new,但是它存在构造方法吗?
java抽象类的构造方法和普通类的构造方法一样,都是用来初始化类。只是抽象类的构造方法不能直接调用,因为抽象类不能实现实例。但是一旦一个普通类继承了抽象类,便也可以在构造函数中调用其抽象类的构造函数,也可以使用其方法。 抽象类就是一个不能实例化的不同类,不过如果方法加了abstract那么就必须在子类里面重写了
- 存在的意义?