В 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`, будет вызван соответствующий


Преимущества наследования и полиморфизма


Наследование и полиморфизм предоставляют несколько преимуществ, включая:


Уменьшение дублирования кода: Наследование позволяет избежать кода, создавая новые классы на основе существующих.


Повышение гибкости: Полиморфизм позволяет объектам принимать разные формы в зависимости от контекста, что делает код более гибким и адаптируемым.


Упрощение поддержки: Наследование и полиморфизм упрощают поддержку кода, позволяя изменять поведение объектов без изменения их внутренней структуры.


В заключении, наследование и полиморфизм – это фундаментальные понятия ООП, которые позволяют создавать более иерархическую структуру классов, избегать дублирования кода повышать гибкость адаптируемость кода. следующей главе мы рассмотрим еще одно важное понятие ООП инкапсуляцию.

Купите полную версию книги и продолжайте чтение
Купить полную книгу