В Java наследование реализуется с помощью ключевого слова `extends`. Например:
```java
public class Animal {
public void sound() {
System.out.println("Животное издает звук");
}
}
public class Dog extends Animal {
public void sound() {
System.out.println("Собака лает");
}
}
```
В этом примере класс `Dog` наследует от класса `Animal` и переопределяет метод `sound()`. Теперь мы можем создать объект вызвать `sound()`, который будет выводить сообщение "Собака лает".
Полиморфизм
Полиморфизм – это способность объекта принимать разные формы в зависимости от контекста. В Java полиморфизм реализуется с помощью методов, которые могут быть переопределены подклассах.
Полиморфизм бывает двух видов: статический и динамический. Статический полиморфизм происходит при компиляции, когда компилятор определяет, какой метод вызвать в зависимости от типа объекта. Динамический во время выполнения, JVM
В Java полиморфизм реализуется с помощью методов, которые объявлены в суперклассе и переопределены подклассах. Например:
```java
public class Animal {
public void sound() {
System.out.println("Животное издает звук");
}
}
public class Dog extends Animal {
public void sound() {
System.out.println("Собака лает");
}
}
public class Cat extends Animal {
public void sound() {
System.out.println("Кошка мяукает");
}
}
public class Main {
public static void main(String[] args) {
Animal animal = new Dog();
animal.sound(); // Выводит "Собака лает"
animal = new Cat();
animal.sound(); // Выводит "Кошка мяукает"
}
}
```
В этом примере мы создаем объекты классов `Dog` и `Cat`, которые наследуют от класса `Animal`. Мы затем присваиваем эти переменной `animal` типа `Animal` вызываем метод `sound()`. зависимости объекта, который присвоен `animal`, будет вызван соответствующий
Преимущества наследования и полиморфизма
Наследование и полиморфизм предоставляют несколько преимуществ, включая:
Уменьшение дублирования кода: Наследование позволяет избежать кода, создавая новые классы на основе существующих.
Повышение гибкости: Полиморфизм позволяет объектам принимать разные формы в зависимости от контекста, что делает код более гибким и адаптируемым.
Упрощение поддержки: Наследование и полиморфизм упрощают поддержку кода, позволяя изменять поведение объектов без изменения их внутренней структуры.
В заключении, наследование и полиморфизм – это фундаментальные понятия ООП, которые позволяют создавать более иерархическую структуру классов, избегать дублирования кода повышать гибкость адаптируемость кода. следующей главе мы рассмотрим еще одно важное понятие ООП инкапсуляцию.