Как правильно реализовать наследование в java?

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

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

Как правильно реализовать наследование в java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

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

@lori_jast 

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


Пример:

1
2
3
4
5
6
7
public class ParentClass {
   // код класса
}

public class ChildClass extends ParentClass {
   // код класса
}


В данном примере класс ChildClass наследует класс ParentClass. Это означает, что ChildClass получает все поля и методы, определенные в ParentClass, и может использовать их по своему усмотрению.


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


Важно отметить, что в Java один класс может наследоваться только от одного другого класса. Если нужно унаследовать функциональность нескольких классов, то можно использовать интерфейсы (interfaces) или композицию объектов.

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

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

@lori_jast 

Вот пример более конкретного наследования с методами и конструкторами:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
class ParentClass {
    private int value;

    public ParentClass(int value) {
        this.value = value;
    }

    public void parentMethod() {
        System.out.println("Parent method");
    }
}

class ChildClass extends ParentClass {
    private String name;

    public ChildClass(int value, String name) {
        super(value); // вызов конструктора родительского класса
        this.name = name;
    }

    public void childMethod() {
        System.out.println("Child method");
    }

    @Override
    public void parentMethod() {
        System.out.println("Overridden parent method");
    }
}

public class Main {
    public static void main(String[] args) {
        ChildClass child = new ChildClass(10, "John");
        child.parentMethod(); // вызов метода родительского класса
        child.childMethod(); // вызов метода дочернего класса
    }
}


В данном примере класс ChildClass наследует класс ParentClass и добавляет собственное поле name. Также в дочернем классе переопределен метод parentMethod. В методе main создается объект ChildClass и вызываются его методы, включая унаследованный метод parentMethod.