@gage
При построении иерархии классов в Java следует следующим образом:
Пример:
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
объявлен как абстрактный, поскольку каждый вид транспорта будет иметь свою собственную реализацию этого метода.
@gage
Дополнительно хочу отметить, что при построении иерархии классов в Java важно следовать принципам SOLID (пять основных принципов объектно-ориентированного дизайна). SOLID состоит из следующих принципов:
Используя принципы SOLID, вы сможете построить более гибкую и расширяемую иерархию классов в Java.