atesting.ru Блог Переопределение метода в Java

Переопределение метода в Java

Переопределение метода: (динамический полиморфизм/полиморфизм времени выполнения)

Объявление метода в дочернем классе, который уже присутствует в родительском классе, называется переопределением метода.

Проще говоря, переопределение означает переопределение функциональности существующего метода.

В этом случае, если мы вызываем метод с объектом дочернего класса, то вызывается метод дочернего класса. Чтобы вызвать метод родительского класса, мы должны использовать ключевое слово super .

Давайте посмотрим на практический пример, чтобы лучше понять.

123456789 пакет methodOverriding; открытый класс MethodOverridingParentClass {public void myMethod () {System.out.println (& # 34; Я метод из родительского класса & # 34;); }}

1234567891011121314151617 пакет methodOverriding; открытый класс MethodOverridingChildClass расширяет MethodOverridingParentClass {public void myMethod () {System.out.println (& # 34; Я метод из дочернего класса & # 34;); } public static void main (String [] args) {MethodOverridingChildClass obj = new MethodOverridingChildClass (); //Он вызывает метод дочернего класса myMethod () obj.myMethod (); }}

Вывод:

1 Я метод из дочернего класса

С переопределением метода дочерний класс может предоставить свою собственную конкретную реализацию унаследованному методу без изменения метода родительского класса. Если дочерний класс может предоставить свою собственную реализацию, это поможет

Предположим, у нас есть несколько дочерних классов. В случае, если один из дочерних классов хочет использовать метод родительского класса, а другой класс хочет использовать свою собственную реализацию, мы можем использовать функцию переопределения.

Переопределение метода также известно как полиморфизм времени выполнения. Давайте посмотрим, почему мы называем это полиморфизмом времени выполнения.

1 ParentClass obj = новый ChildClass ();

Когда ссылка на родительский класс ссылается на объект дочернего класса, вызов переопределенного метода определяется во время выполнения. Это называется полиморфизмом времени выполнения. Это потому, что во время вызова метода, какой метод (родительский класс или дочерний класс) должен быть выполнен, определяется типом объекта.

Тип объекта определяет, какой метод (родительский класс или дочерний класс) должен выполняться во время вызова метода.

Давайте посмотрим на пример, чтобы лучше понять.

123456789 package methodOverriding; открытый класс MethodOverridingParentClass {public void myMethod () {System.out.println (& # 34; Я метод из родительского класса & # 34;); }}

123456789101112131415161718192021222324252627 пакет methodOverriding; открытый класс MethodOverridingChildClass расширяет MethodOverridingParentClass {public void myMethod () {System.out.println (& # 34; Я метод из дочернего класса & # 34;); } public static void main (String [] args) {/* Когда ссылка родительского класса ссылается на объект дочернего класса *, вызывается метод дочернего класса (метод замены). * Это мы называем полиморфизмом времени выполнения */MethodOverridingParentClass obj = new MethodOverridingChildClass (); //Он вызывает метод дочернего класса myMethod () obj.myMethod ();/* Когда ссылка на родительский класс ссылается на объект родительского класса *, вызывается метод родительского класса (замещающий метод). */MethodOverridingParentClass obj1 = new MethodOverridingParentClass (); obj1.myMethod (); }}

Вывод:

12 Я метод из дочернего класса Я метод из родительского класса

TAG: qa