Я выполняю упражнение по наследованию и полиморфизму, у меня есть 3 отдельных класа, мой основной класс, суперкласс Animal и класс Cat Cat. Я сделал перегруженные конструкторы, геттеры и сеттеры, а также методы toString() в классах Animal и Cat. Я думаю, что у меня есть часть наследства. Теперь мне нужно сделать 2 ссылки на объекты животных, как экземпляр Cat, например: один тип Siameese с именем Tobbie.Попытка выяснить Наследование и полиморфизм
Может ли кто-нибудь дать мне пример одной из этих ссылок на объекты? Вы можете видеть, что я попытался в моем основном классе, но я не уверен, что это правильно.
Вот три разных класса, которые у меня есть в настоящее время.
public class Hw02 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Animal Siamese = new Cat("Tobbie");
}
}
Вот мой класс для животных.
public class Animal {
private String name;
public Animal() {
this("na");
}
public Animal(String name) {
this.name = name;
}
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Animal{"
+ "name="
+ name
+ '}';
}
}
И вот мой класс Cat.
public class Cat extends Animal {
private String type;
public Cat() {
}
public Cat(String type) {
this.type = type;
}
public Cat(String type, String name) {
this.type = type;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
@Override
public String toString() {
return "Cat{"
+ "type="
+ type
+ '}';
}
}
Я думаю, что у вас есть правильный экземпляр ted объект кошки. Теперь, если вы вызовете Siamese.toString() в своем основном методе, он вызовет метод toString класса Cat. – Susie
Просто подсказка, вы забыли инициализировать имя поля в конструкторах класса Cat. Вы должны вызвать конструктор суперкласса, используя 'super (name);' как первую строку в вашем конструкторе Cat. Конечно, это имя. – rhobincu
Кроме того, метод overriden toString() в классе Cat отображает только тип cat, а не его имя. – rhobincu