【问题标题】:Passing an object to a superclass in Java [duplicate]将对象传递给Java中的超类[重复]
【发布时间】:2020-10-29 01:43:25
【问题描述】:

对于分配,我应该有一个构造函数,它以姓名、地址、电话、品牌、型号、容量和 numAxles 作为参数。前五个应该传递给超类 Vehicle。 UML 说我的超类应该将对象“person”作为第一个参数(它来自另一个类,并带有姓名、地​​址和电话)。如何将名称、地址和电话作为参数从 Truck 构造函数传递给超类?

这是UML

卡车类

public Truck(Person person, String make, String model, int year, int mileage, int capacity, int numAxles){
        super(person, make, model, year, mileage);

    }

    public Truck(String name, String address, String phone, String make, String model, int capacity, int numAxles ){
        super(name, address, phone, make, model);
    }

Vehicle 超类

public Vehicle(Person person, String make, String model, int year){
        setMileage(0);
    }

【问题讨论】:

  • 你的课程真的扩展了Vehicle吗?
  • 是的,类标题是:public class Truck extends Vehicle{

标签: java super


【解决方案1】:

你可以通过构造一个新的Person来做到这一点

super(new Person(name, address, phone), make, model, 2020);

您可能需要一些年份的默认数字,因为您没有提供它。

【讨论】:

  • 或者,Vehicle 需要一个不需要 Person 的 ctor,或者您可以将 null 传递给该人。这一切都取决于要求,因此很难猜测实际需要什么。有很多方法可以做到。
  • @markspace 是的,这有点猜测,但是看到有诸如 name address 等变量,我大胆猜测并假设这些是@的一部分987654329@
  • 这是一个很好的猜测,我只是想为 OP 提供一些替代方案,以防他们真正需要。
  • @AbhijitSarkar 您提供的链接没有回答问题。如果您能找到重复的内容,请关闭此问题。
  • how to call superclass constructor java。不要误会我的意思,你花时间回答了他的问题,但他没有表现出任何尝试过的努力。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-07-12
  • 2019-05-26
  • 1970-01-01
  • 1970-01-01
  • 2011-09-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多