Перегрузка против переопределения

Перегрузка возникает, когда два или более методов в одном классе имеют одинаковое имя метода, но разные параметры.

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

Два приведенных ниже примера иллюстрируют их различия:

В таблице ниже показаны их основные различия:

  • В классе должно быть как минимум два метода с одинаковым именем.

  • Должен иметь различие различное количество параметров.

  • Если количество параметров одинаковое, то оно должно иметь разные типы параметров.

  • Перегрузка известна как полиморфизм времени компиляции .

  • Должен быть хотя бы один метод с тем же именем в родительском и дочернем классах.

  • Должно иметь одинаковое количество параметров.

  • Должны иметь одинаковые типы параметров.

  • Переопределение известно как полиморфизм времени выполнения .

Примеры кодов

Переопределение

Взгляните на код ниже:

 class Dog {public void bark () {System.out.println ("woof");  }} class Hound расширяет Dog {public void sniff () {System.out.println ("sniff");  } public void bark () {System.out.println ("чаша");  }} class OverridingTest {public static void main (String [] args) {Dog dog = new Hound ();  собака. лаять();  }} 

В этом переопределении , переменная dog объявлена ​​как Dog . Во время компиляции компилятор проверяет, имеет ли класс Dog метод bark () . Пока в классе Dog есть метод bark () , код компилируется. Во время выполнения создается Hound и назначается dog , поэтому он вызывает bark () метод Hound.

Перегрузка

Взгляните на код ниже:

 class Dog {public void bark () {System.out.println ("woof");  }//метод перегрузки public void bark (int num) {for (int i = 0; i  

В этом примере с перегрузкой два лают методы можно вызывать с разными параметрами. Компилятор знает, что они разные, потому что у них разные сигнатуры методов (имя метода и список параметров метода).

Оцените статью
nanomode.ru
Добавить комментарий