abstract类和abstract方法
- 用关键字abstract修饰的类(方法)称为abstract类(方法),抽象类,抽象方法。
- 对于abstract方法,没有方法体,且以 ; 结尾, 且不允许使用final和abstract同时修饰一个类或者方法, 因为被abstract修饰的话,就无法被继承
- abstract类中可以有abstract方法,也可以有非abstract方法。
- abstract类不能用new创建对象。
- 如果一个非抽象类是某个抽象类的子类,那么它必须重写父类的抽象方法,给出方法体。
//抽象类
public abstract class Car {
//抽象方法没有方法体
public abstract void run();
//抽象类中可以有非抽象方法
public void notAbstractMethod(){
System.out.println("我是抽象类中的非抽象方法");
}
//抽象类可以有自己的构造方法
public Car() {
}
}
public class Bicycle extends Car {
//继承了抽象类,就必须实现该类中的抽象方法,不实现的话,就把自己也申明成抽象类
@Override //重写
public void run() {
System.out.println("人踩着跑");
}
public static void main(String[] args) {
Bicycle bicycle = new Bicycle();
bicycle.run(); //人踩着跑
bicycle.notAbstractMethod(); //是抽象类中的非抽象方法
}
}
final关键字
- final类:不能被继承,即不能有子类。
- final方法:不允许子类重写,老老实实继承,不许做任何纂改。
- 常量:如果成员变量或者局部变量被修饰为final,那么它就是常量。
eg:
final double PI=3.14; //PI是常量