s java 创建子类_Java:从父对象创建子类对象

是的,只是添加一个构造函数卡车。你可能想要添加一个构造函数到Car,虽然不一定公开:

public class Car {

protected Car(Car orig) {

...

}

public class Truck extends Car {

public Truck(Car orig) {

super(orig);

}

...

}

作为一个规则,通常最好是让类(或者你可能想标记那些最终)或抽象。

它看起来好像你想要一个Car对象,然后把同一个实例变成一辆卡车。一个更好的方法是将行为委托给Car(Vehicle)中的另一个对象。所以:

public final class Vehicle {

private VehicleBehaviour behaviour = VehicleBehaviour.CAR;

public void becomeTruck() {

this.behaviour = VehicleBehaviour.TRUCK;

}

...

}

如果实现Cloneable,那么您可以“自动”将对象复制到同一类的实例。但是还有一些问题,包括必须复制易变对象的每个字段,这些对象容易出错,并且禁止使用final。


版权声明:本文为weixin_33954874原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。