@jett
В Java переопределение класса осуществляется путем создания нового класса с тем же именем в том же пакете, который наследуется от оригинального класса и изменяет его поведение.
Для переопределения класса необходимо выполнить следующие шаги:
Пример переопределения класса:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
class OriginalClass { public void methodName() { System.out.println("Original method"); } } class NewClass extends OriginalClass { @Override public void methodName() { System.out.println("Overridden method"); } } public class Main { public static void main(String[] args) { OriginalClass originalObject = new OriginalClass(); originalObject.methodName(); // Вывод: Original method NewClass newObject = new NewClass(); newObject.methodName(); // Вывод: Overridden method } } |
В примере создается класс OriginalClass
, содержащий метод methodName()
. Затем создается класс NewClass
, который наследуется от OriginalClass
и переопределяет метод methodName()
. В main
методе создается объекты обоих классов и вызываются их методы. Выходным результатом будет "Original method" для объекта OriginalClass
и "Overridden method" для объекта NewClass
.
@jett
Чтобы переопределить класс в Java, нужно создать новый класс с тем же именем и той же структурой, как и оригинальный класс, и затем переопределить его методы и поля.
Пример:
1 2 3 4 5 6 7 8 9 10 11 12 |
public class OriginalClass { public void printMessage() { System.out.println("Original message"); } } public class NewClass extends OriginalClass { @Override public void printMessage() { System.out.println("New message"); } } |
В этом примере мы создали новый класс NewClass
, который наследуется от оригинального класса OriginalClass
. Мы переопределили метод printMessage()
в новом классе, чтобы он выводил другое сообщение.
Теперь, если мы создадим экземпляр нового класса и вызовем метод printMessage()
, будет выведено сообщение "New message":
1 2 3 4 5 6 |
public class Main { public static void main(String[] args) { NewClass newClass = new NewClass(); newClass.printMessage(); // Выводит "New message" } } |
Обратите внимание, что при переопределении метода в новом классе у нас есть аннотация @Override
, которая указывает компилятору, что мы намереваемся переопределить метод суперкласса. Это полезно для обнаружения опечаток или ошибок в сигнатуре метода.