Делаю потиху задания из решебника и это на третьем пункте меня выбило немного из колеи.
Создать объект класса Котёнок, используя классы Животное, Кошка. Методы:
вывести на консоль имя,
подать голос,
public class Main {
public static void main(String[] args) {
Cat cat = new Cat();
Kitten kitten = cat.giveBirth();
System.out.println(kitten);
cat.printName();
}
}
interface Mother {
<T extends Animal> Kitten giveBirth();
}
abstract class Animal {
protected String name;
abstract void say();
public void printName() {
System.out.printf("My name is %s\n", name);
}
}
class Cat extends Animal implements Mother {
public Cat() {
name = "Cat";
}
@Override
public <T extends Animal> Kitten giveBirth() {
return new Kitten();
}
@Override
public void say() {
System.out.printf("Meow\n");
}
}
class Kitten extends Animal {
public Kitten() {
name = "Kitten";
}
@Override
public void say() {
System.out.printf("Meow\n");
}
}
Как сделать так, чтобы это работало с вывода в main, то есть как-то так:
public class Main {
public static void main(String[] args) {
Cat cat = new Cat("nameCat");
cat.say();
System.out.printf(cat.giveBirth());
Cat catTwo = new Cat("nameCatTwo");
catTwo.say();
System.out.printf(catTwo.giveBirth());
}
}
И правильно ли я понял третий пункт? Что он должен выводить? Почти 6 утра, не понимаю уже ничего. И как корректно переопределить для каждого класса методы equals()
, hashCode()
, toString()
?
У вас класс Kitten
, как минимум, неправильно реализован. Вообще, он в целом и не нужен, так как котёнок - это таже кошка, только маленькая.
Но если уж хотите отдельный класс под котёнка, то наследовать его надо от Cat
, а не Animal
.
Реализация кошки тоже странная: class Cat extends Animal implements Mother
. Кот не мать, он не может рожать. Или же тут имелась ввиду кошка именно как самка?
Плюс, вы реализуете этот интерфейс у кошки, а не у базового класса Animal
. В таком случае, к примеру, если вы захотите создать класс для собаки Dog
, то там тоже будете этот интерфейс реализовывать? По-хорошему, такие вещи нужно как можно выше в иерархии классов реализовывать.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Подскажите, как сериализовать созданные Item'ы в панели, их текст, значение CheckBox и кнопку Delete, и дессериализовать при перезапуске программы?...
Собственно как получить координаты через gps/wifi/ip? В интернете нашёл видео, где пишут что-то типа
Пытаюсь перебрать массивы массивов через foreach: Ошибка
В программе создаются и удаляются объекты, в них есть события и метод который запускается в отдельном потокеВ этом методе который будет работать...