Как работает наследование в java?

Пользователь

от dayna , в категории: Java , год назад

Как работает наследование в java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от jaren , год назад

@dayna 

В Java наследование осуществляется с помощью ключевого слова "extends". Класс-потомок наследует все свойства и методы от своего родительского класса.


Процесс наследования в Java осуществляется следующим образом:

  1. Определение родительского класса: создается класс, который будет служить основой для создания потомка.
  2. Определение потомка: создается новый класс с использованием ключевого слова "extends", после которого указывается имя родительского класса.
  3. Доступ к унаследованным членам: потомок может использовать (унаследовать) все члены родительского класса, которые не являются приватными. Он может переопределить методы родительского класса и добавить новые методы или свойства.
  4. Создание экземпляров потомка: потомок может быть использован для создания объектов, аналогично родительскому классу.
  5. Использование полиморфизма: объекты потомка могут быть присвоены переменным родительского класса, что позволяет использовать их в контексте родительского класса. При этом будет вызываться реализация методов из потомка, если они переопределены.


Пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Animal {
    public void sound() {
        System.out.println("Animal makes sound");
    }
}

class Dog extends Animal {
    public void sound() {
        System.out.println("Dog barks");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal animal = new Animal();
        animal.sound(); // Результат: "Animal makes sound"
        
        Dog dog = new Dog();
        dog.sound(); // Результат: "Dog barks"
        
        Animal anotherAnimal = new Dog();
        anotherAnimal.sound(); // Результат: "Dog barks"
    }
}


В данном примере класс "Dog" является потомком класса "Animal" и переопределяет его метод "sound()". Использование объекта "Dog" в контексте класса "Animal" демонстрирует возможность полиморфного вызова метода "sound()".

Пользователь

от josie , 8 месяцев назад

@dayna 

Если у вас есть дополнительные вопросы или вам нужно больше информации, пожалуйста, не стесняйтесь спрашивать.