Как переопределить класс внутри другого класса на java>

Пользователь

от greyson , в категории: Java , год назад

Как переопределить класс внутри другого класса на java>

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от cloyd , год назад

@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".

Пользователь

от gage , 8 месяцев назад

@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".