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

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

от gage , в категории: Java , 8 месяцев назад

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

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

от lilla.herman , 7 месяцев назад

@gage 

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

  1. Определить общий базовый класс (родительский класс), который будет содержать общие поля и методы для всех классов иерархии. Это может быть абстрактный класс или интерфейс.
  2. Определить подклассы, которые наследуют базовый класс. Каждый подкласс должен расширять функциональность базового класса или добавлять собственные особенности.
  3. Реализовать методы базового класса, которые будут иметь общую реализацию для всех подклассов. Если метод является абстрактным, подклассы обязаны его переопределить.
  4. Можно создать дополнительные уровни наследования, добавляя дополнительные подклассы или интерфейсы.


Пример:

 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
38
public abstract class Vehicle {
    protected String brand;
    protected int year;

    public abstract void start();

    public void stop() {
        System.out.println("Vehicle stopped.");
    }
}

public class Car extends Vehicle {
    private int numOfDoors;

    public Car(String brand, int year, int numOfDoors) {
        this.brand = brand;
        this.year = year;
        this.numOfDoors = numOfDoors;
    }

    public void start() {
        System.out.println("Car started.");
    }
}

public class Bicycle extends Vehicle {
    private int numOfGears;

    public Bicycle(String brand, int year, int numOfGears) {
        this.brand = brand;
        this.year = year;
        this.numOfGears = numOfGears;
    }

    public void start() {
        System.out.println("Bicycle started.");
    }
}


В данном примере классы Car и Bicycle наследуют от класса Vehicle, который содержит общую функциональность и поля для всех видов транспорта. Класс Vehicle является абстрактным, а метод start объявлен как абстрактный, поскольку каждый вид транспорта будет иметь свою собственную реализацию этого метода.