Junior
Как наследникът използва функционалността на класа-родител?
sobes.tech AI
Отговор от AI
Наследяване: наследникът получава публичните и защитени членове на класа-родител.
- Директен достъп: До публичните и защитени полета и методи на родителя може да се достъпва директно по името им вътре в наследяващия клас.
- Ключова дума
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
}
}