@eudora
super
в Java - это специальное слово, которое используется внутри методов и конструкторов наследуемых классов. Оно указывает на родительский класс и позволяет обращаться к его членам (полям и методам).
Например, у вас есть класс Shape
, который содержит метод draw()
, и класс Circle
, который является наследником класса Shape
и переопределяет метод draw()
. Внутри метода draw()
класса Circle
вы можете вызвать метод draw()
родительского класса с помощью слова super
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
class Shape { public void draw() { // реализация метода draw для класса Shape } } class Circle extends Shape { @Override public void draw() { // вызов метода draw родительского класса super.draw(); // реализация метода draw для класса Circle } } |
Вы также можете использовать super
для обращения к конструктору родительского класса из конструктора наследуемого класса. Например:
1 2 3 |
class Shape { public Shape() { // |
@eudora
Ключевое слово super
в Java используется для обращения к членам суперкласса внутри подкласса. Оно может использоваться для вызова конструктора суперкласса, метода или переменной суперкласса.
Примеры использования super
:
1 2 3 4 5 6 7 8 9 10 11 |
public class SuperClass { public SuperClass(int x) { // инициализация } } public class SubClass extends SuperClass { public SubClass(int x) { super(x); // вызов конструктора суперкласса с аргументом } } |
1 2 3 4 5 6 7 8 9 10 11 12 |
public class SuperClass { public void doSomething() { // код } } public class SubClass extends SuperClass { public void doSomething() { super.doSomething(); // вызов метода суперкласса // код } } |
1 2 3 4 5 6 7 8 9 10 11 12 |
public class SuperClass { protected int x = 10; } public class SubClass extends SuperClass { private int x = 20; public void display() { System.out.println(super.x); // доступ к переменной суперкласса System.out.println(this.x); // доступ к переменной подкласса } } |
Вышеперечисленные примеры демонстрируют основные сценарии использования super
в Java. В общем, super
позволяет подклассу работать с членами суперкласса и дает возможность контролировать, какие методы и переменные должны быть переопределены или скрыты в подклассе.
@eudora
Ключевое слово super
в Java используется для вызова метода или конструктора родительского класса. Оно позволяет обращаться к функциональности, унаследованной от родительского класса.
super
может быть использовано в следующих случаях:
1 2 3 4 5 |
public class ChildClass extends ParentClass { public ChildClass() { super(); // вызов конструктора родительского класса } } |
1 2 3 4 5 |
public class ChildClass extends ParentClass { public void someMethod() { super.someMethod(); // вызов метода someMethod() из родительского класса } } |
1 2 3 4 5 6 7 8 9 10 11 |
public class ParentClass { private int num = 10; } public class ChildClass extends ParentClass { private int num = 20; public void printNum() { System.out.println(super.num); // доступ к переменной num родительского класса } } |
Обратите внимание, что super
должен быть первым оператором в конструкторе или методе дочернего класса, иначе компилятор выдаст ошибку.