Я студент, только изучающий интерфейсы. У меня есть абстрактный класс, использующий интерфейс, который вызывается из расширенного класса. Проблема в том, что когда я пытаюсь установить переменную "power", вместо "test" возвращается "Nuclear@3339ed6d". Вы найдете это в расширенном классе внизу. Весь код компилируется и запускается. Буду признателен за любую помощь.
//ИНТЕРФЕЙС:
public interface MoveType
{
public void move();
}
//РЕАЛИЗАЦИЯ:
public class Nuclear implements MoveType
{
public String move()
{
return ("test");
}
}
//РЕЗЮМЕ
public abstract class Ship
{
private String name;
private String year;
private MoveType power;
// Constructors
public Ship(){}
public Ship(String n, String y)
{
name = n;
year = y;
}
// Getters
public String getName()
{
return name;
}
public String getYear()
{
return year;
}
public MoveType getPower()
{
return power;
}
// Setters
public void setName(String n)
{
name = n;
}
public void setYear(String y)
{
year = y;
}
public void setPower(MoveType p)
{
power = p;
}
}
//РАСШИРЕННЫЙ КЛАСС
public class CargoShip extends Ship
{
private int tonnage; //cargo capacity in tonnage
// Constructors
public CargoShip(){}
public CargoShip(String n, String y, int t)
{
super(n,y);
tonnage = t;
setPower(new Nuclear());
}
// Getter
public int getTonnage()
{
return tonnage;
}
// Setter
public void setTonnage(int t)
{
tonnage = t;
}
// To String Override
public String toString()
{
String str = "Name: " + super.getName() + "\n Cargo Capacity in Tonnage: " + tonnage + "\n Ship is powered by: " + super.getPower();
return str;
}
toString()
, который возвращаетNuclear@3339ed6d
. Вы нигде в коде не вызывали методmove
. - person Braj   schedule 25.03.2014