Вступление
Наследование – это механизм создания подкласса, который наследует атрибуты и поведение от родительского класса. В принципе, класс, созданный в Java, автоматически наследуется от класса Object .
Обычно родительский класс представляет собой общую абстракцию сущности. Подкласс – это специфическая абстракция сущности. Механизм наследования проиллюстрирован на этом рисунке.
Создание наследования
Чтобы создать наследование, используйте расширяет ключевое слово , за которым следует родительский класс. В этом примере создаются два класса под названием Автомобиль и Гоночный автомобиль . Автомобиль действует как родительский класс, а Гоночный автомобиль действует как подкласс. Связь между Автомобилем и Гоночный автомобиль показан на этом рисунке ниже.
Класс автомобиля
public class Car {
private String manufacturer;
private String model;
public Car(String manufacturer, String model) {
this.manufacturer = manufacturer;
this.model = model;
}
public void run() {
System.out.println("Running...");
}
public String getManufacturer() {
return manufacturer;
}
public void setManufacturer(String manufacturer) {
this.manufacturer = manufacturer;
}
public String getModel() {
return model;
}
public void setModel(String model) {
this.model = model;
}
}
Класс гоночных автомобилей
public class RaceCar extends Car{
// additional field for race car class
private String teamName;
public RaceCar(String manufacturer, String model, String teamName) {
// call the parent's constructor using super()
super(manufacturer, model);
this.teamName = teamName;
}
// implement run() for race car class
@Override
public void run() {
System.out.println("Running with racing spec");
}
public String getTeamName() {
return teamName;
}
public void setTeamName(String teamName) {
this.teamName = teamName;
}
}
Основной класс
public class MyApp {
public static void main(String[] args) {
RaceCar car = new RaceCar("Porsche","911 GT3","Manthey Racing");
car.run();
}
}
Выход
Running with racing spec
Основываясь на приведенном выше коде, Гоночный автомобиль расширяет все поля и методы в классе Car таким образом, поля и методы внутри класса Car также доступны в классе Гоночный автомобиль . Обратите внимание, что super() используется внутри конструктора RaceCar для вызова родительского конструктора.
Класс Гоночный автомобиль переопределяет метод из класса Автомобиль , называемый run() с @Переопределением аннотацией. @Override в основном означает определение конкретной реализации в родительском методе в данном случае метода run() .
Простой способ понять код наследования – заменить extends с - это слово.
В этом случае Гоночный автомобиль является автомобилем итак, объект из Гоночный автомобиль класс может храниться в переменной с типом Car .
public class MyApp {
public static void main(String[] args) {
Car raceCar = new RaceCar("Toyota","GT-One","Toyota Racing");
raceCar.run();
}
}
Выход
Running with racing spec
Основываясь на приведенной выше обложке, метод run() вызывается из класса Гоночный автомобиль .
Записи
Множественное наследование не поддерживается в Java. Множественное наследование означает, что класс может наследовать множество родительских классов. Это иллюстрация множественного наследования.
Многоуровневое наследование поддерживается в Java. Это иллюстрация многоуровневого наследования.
Источники
- Узнайте больше о наследовании по этой ссылке .
Я надеюсь, что эта статья будет полезна для изучения языка программирования Java. Если у вас есть какие-либо мысли или комментарии, вы можете написать в разделе обсуждения ниже.
Оригинал: “https://dev.to/nadirbasalamah/java-tutorial-9-inheritance-53ip”