Junior
Kā mantojo klase izmanto vecāku klases funkcionalitāti?
sobes.tech AI
Atbilde no AI
Caur mantošanu (inheritance): mantojošais klases loceklis saņem publiskos un aizsargātos vecāklases locekļus.
- Tieša piekļuve: Pie publiskajiem un aizsargātajiem vecāklases lauciņiem un metodēm var tieši piekļūt to nosaukuma dēļ mantojošajā klasē.
superatslēgvārds: To izmanto, lai izsauktu vecāklases konstruktoru vai piekļūtu pārrakstītajām vecāklases metodēm/locekļiem, kad bērna klasē ir vienādi nosaukumi.- Pārrakstīšana (overriding): Vecāklases metodes (ne
final) var pārrakstīt mantojošajā klasē, mainot to uzvedību.
// Vecāklases piemērs
class Parent {
protected int parentValue;
public Parent(int value) {
this.parentValue = value;
}
public void displayParentValue() {
System.out.println("Vecāklases vērtība: " + parentValue);
}
public final void cannotBeOverridden() {
System.out.println("Šo metodi nevar pārrakstīt.");
}
}
// Mantojošās klases piemērs
class Child extends Parent {
private int childValue;
public Child(int parentValue, int childValue) {
super(parentValue); // Vecāklases konstruktora izsaukšana
this.childValue = childValue;
}
// Vecāklases metodes pārrakstīšana
@Override
public void displayParentValue() {
System.out.println("Pārrakstīta vecāklases vērtība: " + parentValue); // Piekļuve aizsargātajam vecāklases laukam
}
public void displayChildValue() {
System.out.println("Bērna vērtība: " + childValue);
}
public void callParentMethod() {
super.displayParentValue(); // Vecāklases metodes izsaukšana ar super
}
}