← Назад к вопросам

Что такое подклассы в Java?

2.0 Middle🔥 131 комментариев
#SOLID и паттерны проектирования#Spring Boot и Spring Data

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI23 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Подклассы в Java

Подклассы (subclasses) — это классы, которые наследуют функциональность от другого класса (суперкласса или родительского класса). Подклассы расширяют или переопределяют поведение родительского класса, обеспечивая специализацию и переиспользование кода.

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

Наследование — это механизм объектно-ориентированного программирования, позволяющий создавать иерархии классов. Подкласс наследует все переменные и методы родительского класса и может добавлять свои собственные члены или переопределять существующие.

Java поддерживает одиночное наследование — класс может наследовать только от одного прямого суперкласса (за исключением класса Object, от которого наследуют все классы).

Синтаксис создания подклассов

// Родительский класс
public class Animal {
    protected String name;
    
    public Animal(String name) {
        this.name = name;
    }
    
    public void eat() {
        System.out.println(name + " eating...");
    }
    
    public void sleep() {
        System.out.println(name + " sleeping...");
    }
}

// Подкласс
public class Dog extends Animal {
    public Dog(String name) {
        super(name);  // Вызов конструктора родителя
    }
    
    @Override
    public void eat() {
        System.out.println(name + " eating meat from bowl");
    }
    
    public void bark() {
        System.out.println(name + " is barking: Woof! Woof!");
    }
}

Ключевые концепции

Переопределение методов (Method Overriding)

Подкласс может изменить поведение методов родительского класса:

public class Vehicle {
    public void start() {
        System.out.println("Vehicle is starting");
    }
}

public class Car extends Vehicle {
    @Override
    public void start() {
        System.out.println("Car engine is starting with ignition key");
    }
}

Ключевое слово super

Позволяет обращаться к методам и конструкторам родительского класса:

public class Employee {
    protected String name;
    protected double salary;
    
    public Employee(String name, double salary) {
        this.name = name;
        this.salary = salary;
    }
}

public class Manager extends Employee {
    private int teamSize;
    
    public Manager(String name, double salary, int teamSize) {
        super(name, salary);
        this.teamSize = teamSize;
    }
}

Полиморфизм с подклассами

Animal animal = new Dog("Rex");
animal.eat();

List<Animal> animals = new ArrayList<>();
animals.add(new Dog("Rex"));
animals.add(new Cat("Whiskers"));

for (Animal a : animals) {
    a.eat();
}

Преимущества подклассов

  • Переиспользование кода — наследование функциональности родителя
  • Специализация — адаптация поведения под конкретные нужды
  • Полиморфизм — возможность работать с объектами через ссылку на суперкласс
  • Расширяемость — легко добавлять новые подклассы без изменения существующего кода
Что такое подклассы в Java? | PrepBro