abstract class 类名字 {
}
修饰符 abstract 返回值类型 方法名 (参数列表);
继承抽象类的子类必须重写父类所有的抽象方法。否则,该子类也必须声明为抽象类。
此时的方法重写,是子类对父类抽象方法的完成实现,我们将这种方法重写的操作,也叫做实现方法。
有得:抽象类得到了拥有抽象方法的能力
有失:抽象类失去了创建对象的能力
Driver.java
1 public abstract class Driver {
2 //定义开车的方法
3 public void drive(){
4 System.out.println("开门");
5 System.out.println("点火");
6 ziShi();//调用的是每个子类重写后的方法
7 System.out.println("刹车");
8 System.out.println("熄火");
9 }
10
11 //新司机和老司机开车的方式不同,定义为抽象方法
12 public abstract void ziShi();
13 }
NewDriver.java
//定义新司机类,是司机的一种,继承司机类
public class NewDriver extends Driver {
@Override
public void ziShi() {
System.out.println("新司机开车姿势:双手紧握方向盘!");
}
}
OlederDriver.java
//定义老司机类,是司机的一种,继承司机类
public class OldDriver extends Driver{
@Override
public void ziShi() {
System.out.println("老司机开车姿势:右手握方向盘左手抽烟!");
}
}
测试类Demo01Driver.java
public class Demo01Driver {
public static void main(String[] args) {
//创建新司机对象
NewDriver nd = new NewDriver();
nd.drive();
System.out.println("-----------------");
//创建老司机对象
OldDriver od = new OldDriver();
od.drive();
}
}
运行结果
原文:https://www.cnblogs.com/love-xiaowu/p/12687140.html