如何创建一个复制构造函数到一个子类

时间:2019-04-06 21:54:18

标签: java inheritance constructor copy subclass

我正在尝试编写一个在同一项目中具有子类数组的类,并且当我试图编写一个在该对象尚未包含新对象的情况下向该数组添加新对象的方法时数组,并且如果特定单元格是空闲的,则对象将进入数组。 但是问题是我需要向此方法插入一个变量,该方法是复制构造函数的对象。 问题是在子类中,我不知道如何编写副本构造函数。 因此,我将举一个简短的2类示例,您将向我展示如何使用它们编写副本构造函数:

public class Food
{
private String _foodName;
public Food(String foodName)
{
_foodName=foodName;
}
public String getFoodName()
{
return _foodName;
}
public void showName()
{
System.out.println("The food's name is: " +_getFoodName());
}
}

public class Apple extends Food
{
private int _numOfApples;
public Apple(String name, int numOfApples)
{
super(name);
_numOfApples=numOfApples;
}
public Apple(Apple other)
{
????
}
}

复制构造函数应如何显示? 谢谢您的帮助:)

2 个答案:

答案 0 :(得分:0)

通过调用其他构造函数。喜欢,

public Apple(Apple other) {
    this(other.getFoodName(), other._numOfApples);
}

答案 1 :(得分:-1)

我无法正确地帮助您,因为我无法完全理解您要做什么,但是至少我可以帮助您纠正代码中的一些错误:

public class Food
{
     private String food;

     public Food(String foodName)
     {
          food = foodName;
     }
     public String getFoodName()
     {
          return food;
     }
     public void showName()
     {
          System.out.println("The food's name is: " + getFoodName());
     }
 }

 public class Apple extends Food
 {
      private int numOfApples;

      public Apple(String name, int numberOfApples)
      {
           super(food);
           numOfApples=numberOfApples;
      }
      public Apple(Apple copy)
      {
           this.name = copy.name;
           this.numOfApples = copy.numOfApples;
      }
 }

希望这会有所帮助。