abstract
abstract修饰符,可以用来修饰类和方法。
抽象类:
abstract 类名{}
抽象类不能实例化。
抽象类中有构造器。
抽象方法:
abstract 类名{
abstract 返回值 方法名();
}
抽象方法只有方法的声明,没有方法体。
子类继承抽象方法,必须重写抽象类中所有抽象方法,才可以实例化。
如果子类没有重写抽象类中所有的抽象方法,此子类也必须是抽象类。
抽象类中可以没有抽象方法,有抽象方法的类一定是抽象类。
abstract不能用来修饰:属性、构造器等结构
abstract不能用来修饰私有方法、静态方法、final的方法、final的类
public class AbstractTest {
public static void main(String[] args) {
Fly f = new Aircraft(200);
f.describe();//抽象类中方法
f.flight();//飞机200千米/小时速度飞行
}
}
abstract class Fly{
public int speed;
Fly(int s){
speed = s;
}
public void describe(){
System.out.println("抽象类中方法");
};
abstract void flight();
}
class Aircraft extends Fly{
Aircraft(int s){
super(s);
};
@Override
void flight() {
System.out.println("飞机"+super.speed+ "千米/小时速度飞行");
}
}