Pri*_*alj 4 java oop inheritance object
我有一个车辆类.从Vehicle,我扩展了Car class(以及其他一些如Bus,Bike ..).现在在我的应用程序中,我不知道用户想要使用哪种车辆.所以我创建了一个Vehicle对象,然后将其设置为正确的对象(Car,Bus,...).之后,我想调用一些Car的功能 - 但我无法达到它.为什么?
Vehicle vehicle=null;
. . .
vehicle=new Car();
vehicle.someMethodFromCar(); //can't reach it
Run Code Online (Sandbox Code Playgroud)
我们必须施展:
((Car) vehicle).someMethodFromCar(); //we can reach it
Run Code Online (Sandbox Code Playgroud)
vehicle仍然被声明为一种Vehicle类型.如果您指定的子类型,则不会更改Vehicle.并且Vehicle该类没有类中的额外方法Car.转换是从子类型调用方法的方法.