【发布时间】:2021-06-26 02:52:17
【问题描述】:
如果我有一个名为 Vehicle 的超类和一个名为 SportsCar 的子类,那么这两个创建 SportsCar 对象的代码有什么区别? car1 和 car2 有什么区别?
SportsCar car1 = new SportsCar();
Vehicle car2 = new SportsCar();
【问题讨论】:
标签: java object oop inheritance
如果我有一个名为 Vehicle 的超类和一个名为 SportsCar 的子类,那么这两个创建 SportsCar 对象的代码有什么区别? car1 和 car2 有什么区别?
SportsCar car1 = new SportsCar();
Vehicle car2 = new SportsCar();
【问题讨论】:
标签: java object oop inheritance
我会通过一个例子给你解释一下:
假设您有另一个名为 SUV 的 Vehicle 子类。现在,如果您要编写一个为车辆加油的函数。由于SportsCar 和SUV 的加油保持不变,因此您可以使用如下功能:
void refuel(Vehicle vehicle){
vehicle.refuel = true;
}
通过Vehicle car1 = new SportsCar();和Vehicle car1 = new SUV();这样的初始化,你可以很容易地调用函数refuel(car1); refuel(car2);
原因很简单,父类是各个子类的共同引用。
你也可以在java世界看看这个common scenario!!
您还可以通过this 了解它为何以这种方式工作的技术性。以及它如何成为 OOP 的重要支柱。
【讨论】: