Junior
Kako klasa naslednik koristi funkcionalnost klase roditelja?
sobes.tech АИ
Одговор од АИ
Кроз наслеђивање: класа наследник добија јавне и заштићене чланове класе-родитеља.
- Директан приступ: Једноставно можете приступити јавним и заштићеним пољима и методама класе-родитеља по њиховом имену унутар класе наследника.
- Кључна реч
super: Користи се за позивање конструктора родитеља или за приступ прекопираним методама/пољима родитеља када у класи наследнику постоје чланови са истим именом. - Преоптерећење (overriding): Методи родитеља (који нису
final) могу бити преоптерећени у класи наследнику, променивши њихово понашање.
// Пример родитељске класе
class Parent {
protected int parentValue;
public Parent(int value) {
this.parentValue = value;
}
public void displayParentValue() {
System.out.println("Вредност родитеља: " + parentValue);
}
public final void cannotBeOverridden() {
System.out.println("Овај метод не може бити преоптерећен.");
}
}
// Пример класе наследника
class Child extends Parent {
private int childValue;
public Child(int parentValue, int childValue) {
super(parentValue); // Позив конструктора родитеља
this.childValue = childValue;
}
// Преоптерећење метода родитеља
@Override
public void displayParentValue() {
System.out.println("Преоптерећена вредност родитеља: " + parentValue); // приступ заштићеном пољу родитеља
}
public void displayChildValue() {
System.out.println("Вредност детета: " + childValue);
}
public void callParentMethod() {
super.displayParentValue(); // позив метода родитеља преко super
}
}