Как создать конструктор копирования для подкласса - PullRequest
0 голосов
/ 07 апреля 2019

Я пытаюсь написать класс, который имеет массив подкласса в том же проекте, и когда я пытаюсь написать метод, который добавит новый объект в массив при условии, что этот объект еще не находится вмассив, а также, если конкретная ячейка свободна, значит, объект войдет в массив.но проблема в том, что мне нужно вставить переменную в этот метод, который является объектом конструктора копирования.проблема в том, что в подклассе я не знаю, как написать конструктор копирования.поэтому я приведу краткий пример 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)
{
????
}
}

как должен выглядеть конструктор копирования?спасибо за помощь :) 1004 *

Ответы [ 2 ]

0 голосов
/ 07 апреля 2019

Я не могу помочь вам должным образом, потому что я не могу полностью понять, что вы пытаетесь сделать, но, по крайней мере, я могу помочь вам исправить некоторые ошибки в вашем коде:

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;
      }
 }

Надеюсь, это поможет.

0 голосов
/ 07 апреля 2019

Вызывая другой конструктор. Мол,

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