Топ-100Наследование в Java - CodOrbits
LogoCodOrbits

Раздел: ООП

Здесь вы познакомитесь с объектно-ориентированным программированием в Java: классы, наследование, инкапсуляция и полиморфизм и многое другое.

Все разделы
Иконка ООП

Наследование в Java

Last updated: 3 мая 2025 г.

Благодаря наследованию один класс может иметь доступ к полям другого класса.

Но эти классы должны быть логически связаны и связанность между ними должна идти от общего к частному.

Например, далее создается класс Животное.

Класс кот может наследовать класс животное, так как кот является животным.

При наследовании класса Животное, класс кота получает доступ напрямую ко всем полям и методам класса Животное.

Логическая связанность здесь в том, что Животное это общее, то есть животное это и кот, и собака и птица. То есть класс Животное общий в том плане, что от него могут наследовать классы разных конкретных животных.

Классы конкретных животных, при наследовании от класса Животное, получают доступ ко всем его полям и методам. То есть, например, у класса Животное есть поля сколько ног, чем питается и т.д., и если класс кота наследует от класса Животное, и если мы создадим в main объект кота, то можем через этот объект кота обращаться с полями класса Животное, как если бы они были полями класса кота.

Поясним на примере:

1//это класс Животное
2class Animal {
3    //У него 2 поля. Одно хранит что животное ест,
4    //а второе хранит количество ног.
5    private String eats;
6    private int noOfLegs;
7
8    public Animal(){}
9
10    public Animal(String food, int legs){
11        this.eats = food;
12        this.noOfLegs = legs;
13    }
14
15    //геттеры и сеттеры
16    public String getEats() {
17        return eats;
18    }
19
20    public void setEats(String eats) {
21        this.eats = eats;
22    }
23
24    public int getNoOfLegs() {
25        return noOfLegs;
26    }
27
28    public void setNoOfLegs(int noOfLegs) {
29        this.noOfLegs = noOfLegs;
30    }
31}
32
33//Наследование производится с помощью
34//ключевого слова extends.
35//Ниже Cat наследует Animal
36class Cat extends Animal{
37    private String name;
38    private String color;
39
40    Cat(){}
41
42    Cat (String catName, String catColor) {
43        name = catName;
44        color = catColor;
45        System.out.println(color);
46    }
47
48    public String getName(){
49        return name;
50    }
51
52    public void setName(String catName){
53        name = catName;
54    }
55
56    public String getColor(){
57        return color;
58    }
59
60    public void setColor(String catColor){
61        color = catColor;
62    }
63
64    void sayMeow(){
65        System.out.println("Meow");
66    }
67}
68
69class Inheritance {
70    public static void main(String[] args){
71        Cat somecat = new Cat();
72        //Как видно снизу через объект класса Cat
73        //имеем доступ к методам
74        //setNoOfLegs и getNoOfLegs класса Animal
75        //и это благодаря наследованию.
76        somecat.setNoOfLegs(4);
77        System.out.println(somecat.getNoOfLegs());
78    }
79}

Вывод:

От Animal, ясное дело, может наследовать не только кот, а и класс птицы, собаки и других животных.

Search Icon

Но только животное, так как не будет логично если от Animal, например, будет наследовать стул.


Следующие уроки

Полиморфизм

15
мин.

Similar Articles Icon
Divider

Абстрактный класс

16
мин.

Similar Articles Icon
Divider

Интерфейсы в Java

13
мин.

Similar Articles Icon