Sobes.tech
Back to questions
Junior — Middle
53

Как связь между полиморфизмом и абстракцией проявляется в объектно-ориентированном программировании?

Answer from AI

sobes.tech AI

Абстракция в объектно-ориентированном программировании позволяет выделить важные характеристики объекта, скрывая детали реализации. Полиморфизм же позволяет объектам разных классов реагировать на одинаковые сообщения (методы) по-разному.

Связь между ними в том, что абстракция задаёт общий интерфейс или базовый класс, а полиморфизм реализует конкретное поведение в подклассах. Это позволяет работать с объектами через абстрактный тип, не зная конкретной реализации.

Пример на Java:

abstract class Animal {
    abstract void makeSound();
}

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

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

public class Main {
    public static void main(String[] args) {
        Animal a = new Dog();
        a.makeSound(); // Bark
        a = new Cat();
        a.makeSound(); // Meow
    }
}