gpt4 book ai didi

java - 如何在 Java 中获取 SuperClass 的实例?

转载 作者:行者123 更新时间:2023-11-30 06:53:54 24 4
gpt4 key购买 nike

让我解释一下我的情况:

 public class Car extends Vehicle{
public Car() { }
public Car(String model){
super(model);
AutoParts autoParts=new AutoParts(Car.this.getSuperClass); //get compile error here
}
}


public class AutoParts{
Vehicle _Vehicle;
public AutoParts() { }
public AutoParts(Vehile vehicle){
this._Vehicle=vehicle;
}
}

抱歉这个可怕的例子。但是在初始化期间,Ford ford=new Ford(Car.this.getSuperClass);,我希望能够将父类(super class)的实例作为参数传递给构造函数。

我该怎么做?如何获取父类(super class)的实例?

**

编辑:

类名,Ford 重命名为 AutoParts

最佳答案

第一个问题是为什么你特别想要一个父类(super class)的实例?我假设您不希望您的福特汽车访问汽车的其他成员(扩展车辆类),因为福特汽车可能是卡车。您可以像这样使用转换来实现此目的:

Ford ford=new Ford((Vehicle)this);

但是,如果您的 Car 中有任何方法重写(即“this”对象),这些方法仍将存在于您传递给 Ford 构造函数的 Vehicle 中,这是您想要的吗?

我认为我们在 OO 设计方面偏离了人迹罕至的轨道。 Ford 没有 Vehicle,所以有 Vehicle 字段是错误的。 Ford 是一种车辆,因此它应该扩展 Vehicle。另外,在创造汽车时,为什么一定要创造福特?汽车是福特,所以我会让 Car 类扩展福特(而不是相反,Jon Skeet,因为可能有福特卡车/摩托车等)

关于java - 如何在 Java 中获取 SuperClass 的实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36963923/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com