Наследование в 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, ясное дело, может наследовать не только кот, а и класс птицы, собаки и других животных.
Но только животное, так как не будет логично если от Animal, например, будет наследовать стул.
Следующие уроки
Полиморфизм
15
мин.
Абстрактный класс
16
мин.
Интерфейсы в Java
13
мин.