Sobes.tech
Back to questions
Junior — Middle
58

Чем отличаются концепции наследования и полиморфизма в объектно-ориентированном программировании?

Answer from AI

sobes.tech AI

Наследование и полиморфизм — два ключевых принципа объектно-ориентированного программирования, но они решают разные задачи:

  • Наследование позволяет создавать новый класс на основе существующего, перенимая его свойства и методы. Это способствует повторному использованию кода и созданию иерархий классов.

  • Полиморфизм позволяет объектам разных классов, связанных наследованием, использовать один и тот же интерфейс или метод, но с разной реализацией. Это обеспечивает гибкость и расширяемость кода.

Пример:

class Animal {
    void sound() {
        System.out.println("Some sound");
    }
}

class Dog extends Animal {
    @Override
    void sound() {
        System.out.println("Bark");
    }
}

class Cat extends Animal {
    @Override
    void sound() {
        System.out.println("Meow");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal a = new Dog();
        a.sound(); // Выведет "Bark" — пример полиморфизма
    }
}

Здесь наследование — это создание классов Dog и Cat на основе Animal, а полиморфизм — вызов метода sound() у объекта типа Animal, который на самом деле является Dog, с соответствующей реализацией.