Sobes.tech
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);
    }
}