我有一个 Vehicle 类。从 Vehicle,我扩展了 Car 类(以及一些其他类,如 Bus、Bike..)。现在在我的应用程序中,我不知道用户想要使用哪种车辆。因此,我创建了一个 Vehicle 对象,然后将其分配给适当的对象(Car、Bus,...)。之后我想调用一些 Car 的函数 - 但我无法访问它。为什么?
Vehicle vehicle=null;
. . .
vehicle=new Car();
vehicle.someMethodFromCar(); //can't reach it
最佳答案
我们必须转换:
((Car) vehicle).someMethodFromCar(); //we can reach it
vehicle
仍然声明为 Vehicle
类型。如果您分配 Vehicle
的子类型,这不会改变。并且 Vehicle
类没有 Car
类的额外方法。转换是从子类型调用方法的方式。
关于java - 如何达到扩展类的功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9872328/