java - 如何达到扩展类的功能?

标签 java oop inheritance object

我有一个 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/

相关文章:

java - 如何在 cactoos 的空白字符串之后从文件中检索字符串?

javascript - OOJS - 将每个元素绑定(bind)到特定点击

c++ - 从构造函数调用成员函数

C++ 非多态接口(interface)

c# - 使用带参数的基类构造函数继承

java - Intellij IDEA 包含 Maven 已经包含的其他模块

java - 使用 2 种允许的格式匹配 SMS 消息中的数字的单一模式

java - 使用 Mockito 调用多个其他方法的方法的单元测试

Java Graphics2D 插值似乎不适用于调整大小的图像

java - 为什么类不能扩展枚举?