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
}
}