extends и super
Используйте extends для повторного использования базового класса, а super — для вызова конструктора или методов родительского класса. Делайте примеры небольшими и понятными.
«extends и super» — бесплатный урок Java Academy на CoddyKit. Это урок 1 из 3. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Java Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Java Academy содержит 3 уроков всего.
Что такое наследование?
Наследование позволяет классу повторно использовать и расширять другой класс. Дочерний класс получает поля и методы родительского класса и может добавлять собственные. Используйте наследование для совместного кода похожих типов.
Использование extends
Используйте ключевое слово extends, чтобы создать подкласс. Пример: класс Car наследует Vehicle. Подкласс является конкретным видом родительского класса и может повторно использовать его поведение.
super(...) в конструкторах
В конструкторе дочернего класса вызов super(...) обращается к конструктору родительского класса. Сначала он инициализирует родительскую часть. Если явно его не вызвать, Java по умолчанию вызывает конструктор родительского класса без аргументов, если такой существует.
super.method()
Также можно написать super.someMethod(), чтобы использовать родительскую версию метода. Это удобно, когда дочерний класс хочет добавить небольшое дополнительное поведение к базовой логике.
Когда это использовать
Используйте наследование при ясном отношении «является»: Car является Vehicle. Если Вы хотите только повторно использовать функциональность, но отношение «является» не подходит, предпочитайте композицию. Для начинающих сохраняйте деревья классов неглубокими.
Код: extends и super
Код: Car наследует Vehicle. Конструктор вызывает super, чтобы задать марку. Метод дочернего класса вызывает super.printInfo(), а затем добавляет собственную строку.
public class Main {
// Base class with a simple constructor and method
static class Vehicle {
String brand;
Vehicle(String brand) {
this.brand = brand; // parent sets its own field
}
void printInfo() {
System.out.println("Vehicle brand: " + brand);
}
}
// Subclass reuses Vehicle with extends
static class Car extends Vehicle {
int doors;
Car(String brand, int doors) {
super(brand); // call parent constructor first
this.doors = doors;
}
void printInfo() {
// Add extra info, but reuse parent behavior
super.printInfo(); // call parent method
System.out.println("Doors: " + doors);
}
}
public static void main(String[] args) {
// Create a Car (which is a Vehicle)
Car c = new Car("EcoMotors", 4);
c.printInfo(); // shows parent info then child info
}
}
Проверка super(...)
Быстрая проверка: Что делает вызов super(...) внутри конструктора подкласса?
Повторение
Повторение: extends устанавливает отношение «является», super(...) инициализирует родительский класс, а super.method() повторно использует базовую логику. Предпочитайте простые и неглубокие иерархии.
Часто задаваемые вопросы
Урок «extends и super» бесплатный?
Да — полный текст урока «extends и super» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Java Academy, подпишись на CoddyKit PRO. Курс Java Academy содержит 3 уроков всего.
Чему я научусь в уроке «extends и super»?
Используйте extends для повторного использования базового класса, а super — для вызова конструктора или методов родительского класса. Делайте примеры небольшими и понятными. Ты практикуешь Java Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Java Academy?
Предыдущий опыт не требуется. Java Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 3.
Сколько времени занимает урок «extends и super»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Java Academy?
Да. Каждый урок Java Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- extends и super
- Переопределение методов
- Полиморфизм и динамическое связывание