Обязателен ли инициализатор при создании дочернего класса?
Например, есть класс Animal(принимает имя и возраст), а класс Dog его расширяет, но принимает те же параметры.
На питоне это будет выглядеть так:
class Animal:
def __init__(self, name, age):
self.name = name
self.age = age
class Dog(Animal):
def voice(self):
print("GAV")
d = Dog('Sharik', 4)
d.voice()
Для класса Dog прописывать инициализатор второй раз не нужно.
На Java примерно тоже самое выглядит так:
package Alive;
public class Animal{
String name;
int age;
public Animal(){
this.name = name;
this.age = age;
}
public void voice() {
System.out.println("I'm talking");
}
public void hello() {
System.out.println("Hello");
}
}
и кошка вместо собаки
package Alive;
public class Cat extends Animal{
public Cat(String name, int age) {
}
public void voice() {
System.out.println("MEW");
}
}
Можно ли каким-то способом избежать написания
public Cat(String name, int age) {
}
?