Junior
98
questionbank
Можно ли переопределить метод в Java? А как насчет конструктора?
Ответ от нейросети
sobes.tech AI
Да, метод переопределить можно. Это называется переопределением (override) и используется для реализации полиморфизма во время выполнения.
Переопределение метода: подкласс предоставляет свою собственную реализацию метода, который уже определен в его суперклассе. Метод должен иметь ту же сигнатуру (имя, количество и типы параметров, порядок параметров).
class Animal {
public void makeSound() {
// Реализация по умолчанию
System.out.println("Some generic sound");
}
}
class Dog extends Animal {
@Override
public void makeSound() {
// Переопределенная реализация
System.out.println("Woof");
}
}
Конструктор переопределить нельзя. Конструкторы не являются обычными методами. У них нет возвращаемого типа, и их имя всегда совпадает с именем класса. Каждый класс имеет свои собственные конструкторы, используемые для инициализации объектов этого класса.
Если вам нужно вызвать конструктор суперкласса из подкласса, используйте ключевое слово super().
class Animal {
String species;
public Animal(String species) {
this.species = species;
System.out.println("Creating an animal of species: " + this.species);
}
}
class Dog extends Animal {
String breed;
public Dog(String species, String breed) {
super(species); // Вызов конструктора суперкласса
this.breed = breed;
System.out.println("Creating a dog of breed: " + this.breed);
}
}