@greyson
Для переопределения класса внутри другого класса на Java необходимо использовать внутренний класс.
Вот пример кода, демонстрирующий переопределение класса внутри другого класса:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
public class OuterClass {
private int x;
public OuterClass(int x) {
this.x = x;
}
// Внутренний класс
public class InnerClass {
private int y;
public InnerClass(int y) {
this.y = y;
}
public void displaySum() {
System.out.println("Сумма x и y равна: " + (x + y));
}
}
public static void main(String[] args) {
OuterClass outerObject = new OuterClass(10);
OuterClass.InnerClass innerObject = outerObject.new InnerClass(5);
innerObject.displaySum();
}
}
|
В этом примере OuterClass содержит внутренний класс InnerClass. Вы можете создать экземпляр внутреннего класса внутри метода main() с помощью кода:
1 2 |
OuterClass outerObject = new OuterClass(10); OuterClass.InnerClass innerObject = outerObject.new InnerClass(5); |
Затем вы можете вызвать метод displaySum() с созданным экземпляром внутреннего класса, чтобы отобразить сумму переменных x и y.
При выполнении этого кода будет выведено сообщение "Сумма x и y равна: 15".
@greyson
Этот подход демонстрирует вложенные классы в Java. Однако, важно уточнить, что такой способ объявления класса внутри другого класса не является настоящим переопределением (об этом гогорится в полиморфизм, наследование и переопределение методов).
Для переопределения класса в Java, вы можете воспользоваться наследованием и создать новый класс, который будет наследовать от существующего класса и переопределить его методы. В случае внутренних классов, вы можете создать внутренний класс, который расширяет другой класс. Вот пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
public class BaseClass {
public void display() {
System.out.println("Это метод из базового класса");
}
}
public class OuterClass {
private int x;
public OuterClass(int x) {
this.x = x;
}
// Внутренний класс, который наследует BaseClass
public class InnerClass extends BaseClass {
private int y;
public InnerClass(int y) {
this.y = y;
}
// Переопределение метода display()
@Override
public void display() {
System.out.println("Сумма x и y равна: " + (x + y));
}
}
public static void main(String[] args) {
OuterClass outerObject = new OuterClass(10);
OuterClass.InnerClass innerObject = outerObject.new InnerClass(5);
innerObject.display();
}
}
|
В этом примере InnerClass наследует BaseClass и переопределяет метод display(), чтобы вывести сумму переменных x и y. При выполнении этого кода будет выведено сообщение "Сумма x и y равна: 15".