Java Super - ускоренное обучение языку программирования Java
Java `super` - это ключевое слово, которое используется для ссылки на родительский класс внутри подкласса. Оно обеспечивает доступ к методам и переменным родительского класса, которые могут быть переопределены или скрыты в подклассе.
Использование `super` позволяет вызывать конструктор и методы родительского класса из подкласса. Например, если у родительского класса есть метод `show()`, который выводит сообщение на экран, и мы хотим вызвать этот метод из подкласса, мы можем использовать ключевое слово `super`:
java
class ParentClass {
public void show() {
System.out.println("Hello, I am ParentClass");
}
}
class ChildClass extends ParentClass {
public void show() {
super.show(); // вызываем метод show() родительского класса
System.out.println("Hello, I am ChildClass");
}
}
public static void main(String[] args) {
ChildClass child = new ChildClass();
child.show();
}
В этом примере при вызове метода `show()` в подклассе `ChildClass`, мы вызываем метод `show()` родительского класса с помощью `super.show()`, который выводит сообщение "Hello, I am ParentClass", а затем выводим сообщение "Hello, I am ChildClass".
Также, ключевое слово `super` может использоваться для вызова конструктора родительского класса из подкласса. Например:
java
class ParentClass {
private int x;
public ParentClass(int x) {
this.x = x;
}
public int getX() {
return x;
}
}
class ChildClass extends ParentClass {
private int y;
public ChildClass(int x, int y) {
super(x); // вызываем конструктор родительского класса
this.y = y;
}
public int getY() {
return y;
}
}
public static void main(String[] args) {
ChildClass child = new ChildClass(10, 20);
System.out.println(child.getX()); // выведет 10
System.out.println(child.getY()); // выведет 20
}
В этом примере, мы вызываем конструктор родительского класса с помощью `super(x)`, передавая ему значение `x`. Затем мы инициализируем переменную `y` в подклассе `ChildClass`. После этого мы можем получить значения обеих переменных с помощью методов `getX()` и `getY()`.
Таким образом, ключевое слово `super` обеспечивает доступ к элементам родительского класса внутри подкласса и позволяет переопределять или расширять методы и конструкторы родительского класса в подклассе.