Увод у полиморфизам током рада на Јави

У овом чланку ћемо сазнати о Рунтиме Полиморпхисм на Јави. „Поли“ значи „много“, а „морпх“ значи „тип“. Дакле, израз полиморфизам означава исту ствар различитих типова. Овде ћемо видети како Јава архивира полиморфизам у току рада, што значи после компилације, али пре покретања кода.

Синтакса:

За време полиморфизма у Јави требало би да следите основну синтаксу јаве са напоменама. @Override се може употребити напомена @Оверриде да бисмо посебно истакли који метод желимо да надјачамо.

Како Полиморфизам током рада ради на Јави?

Полиморфизам рунтиме-а делује у Јави методом прегласавања. Поништавање метода се дешава када објекти имају исти назив и аргументе и врсту методе као и родитељска класа, али са различитим функцијама. Ако дечија класа има у себи ту врсту метода, називамо је прегласана метода.

Зашто се то назива Полиморфизам током рада?

када назовемо прејачену методу дечије класе преко референтног типа родитеља (овај феномен се у Јави назива „ажурирање“), тада тип објекта означава који метод или функционалност ће се позвати. Доношење ове одлуке догађа се током извршавања ЈВМ-а након компилације кода. Отуда се назива полиморфизмом трчања.

Такође се назива и „отпрема динамичке методе“. Разлог је тако назван, због чињенице да се функционалност методе динамички одлучује у времену рада према објекту од ЈВМ

Назива се и „касно везивање“, јер се везање методе и објекта, што значи функционалност методе објекта која се приказује, одлучује касно, тј. Након компилације.

Правила и ограничења у Рунтим е Полиморфизму

Испод су нека од правила и ограничења полиморфизма током извођења:

Правила полиморфизма током извођења

  • Методе дечије и родитељске класе морају имати исти назив.
  • Методе подређене и родитељске класе морају имати исти параметар.
  • Веза ИС-а је обавезна (наследство).

Ограничења полиморфизма током рада

  • Не могу се пребрисати приватни методи родитељске класе.
  • Коначне методе не могу превладати.
  • Не можемо пребрисати статичке методе.

Примери полиморфизма током извођења на Јави

Овде ћемо расправљати о неким примерима кодова полиморфизма покретања времена.

Пример # 1

У овом примјеру показаћемо како метода сховцасе () приказује различите поруке овисно о којој врсти објекта је повезана. Када је повезан са типом „Родитељи“, приказује поруке из родитељске класе. Док је повезана са типом "Деца", она приказује поруке дечије класе.

Шифра:

class Parents (
public void showcase () (
System.out.println("I am Parent");
)
)
class Children extends Parents (
@Override
public void showcase () (
System.out.println("I am Children");
)
)
public class RunTimePolymorphism (
public static void main(String args()) (
Parents superObject = new Parents();
superObject.showcase(); //method of super class or parent class is called
Parents subObject = new Children(); // upcasting
subObject.showcase();//method of sub class or child class is called by Parent reference, this is called "Run time Polymorphism"
Children subObject2 = new Children();
subObject2.showcase(); //method of sub class or child class is called
)
)

Излаз:

Пример бр. 2

Узмимо за пример полиморфизам покренутог времена у случају наслеђивања на више нивоа. У овом примеру смо узели у обзир два нивоа наследства. У овом примјеру показаћемо како метода сип () приказује различите поруке овисно о којој врсти објекта је повезана. Када је повезан са типом „Хуман“, приказује поруке из родитељске класе. Док, када је повезан са типом "Човек", он приказује поруке из своје дечије класе. Поново у другом степену наследства, када је повезано са типом „Беба“, показује поруке из дечије класе свог родитеља која је класа „Човек“.

Шифра:

class Human(
void sip() (
System.out.println("Human is sipping");
)
)
class Man extends Human(
void sip()(
System.out.println("Man is sipping soup");
)
)
class Baby extends Man(
void sip()(
System.out.println("Baby is sipping milk");
)
)
public class RunTimePolymorphism (
public static void main(String args())(
Human superObject=new Human();
Human subObject=new Man(); // // upcasting : first level of heritance
Human babyObject=new Baby(); // // upcasting : second level of heritance
superObject.sip();
subObject.sip(); //run time polymorphism happening in first level of heritance
babyObject.sip(); //run time polymorphism happening in second level of heritance
)
)

Излаз:

Пример # 3

Узмимо још један пример полиморфизма из времена извођења у случају наслеђивања на више нивоа. У овом примеру имамо у виду три нивоа наследства. У овом примјеру показаћемо како функција метода () приказује различите карактеристике у зависности од врсте објекта који је повезан. Када је повезан са типом „оперативног система“, приказује поруке родитељске класе. Док, када је повезан са типом "ДОС", он приказује поруке из своје дечије класе. Поново у другом нивоу наслеђивања, када је повезан са типом "Виндовс", приказује поруке из своје дечије класе родитеља која је "ДОС" класа. Поново у трећем степену наследства, када је повезан са типом „ВиндовсМобиле“, приказује поруке из матичне класе свог родитеља која је класа „Виндовс“.

Шифра:

class OperatingSytem(
void feature() (
System.out.println("This is Operating Sytem");
)
)
class DOS extends OperatingSytem(
void feature()(
System.out.println("This is DOS");
)
)
class Windows extends DOS(
void feature()(
System.out.println("This is Windows");
)
)
class WindowsMobile extends Windows(
void feature()(
System.out.println("This is Windows Mobile");
)
)
public class RunTimePolymorphism (
public static void main(String args())(
OperatingSytem superObject=new OperatingSytem();
OperatingSytem subObject=new DOS(); // child object type : first level of heritance
OperatingSytem sub2Object=new Windows(); // child object type : second level of heritance
OperatingSytem sub3Object=new WindowsMobile(); // child object type : third level of heritance
superObject.feature();
subObject.feature(); //run time polymorphism happening in first level of heritance
sub2Object.feature(); //run time polymorphism happening in second level of heritance
sub3Object.feature(); //run time polymorphism happening in third level of heritance
)
)

Излаз:

Закључак

Овим се закључује наше учење о теми „Полиморфизам током рада у Јави“. Запишите се кодови споменути у горњим примерима у јава преводиоцу и потврдите излаз. Учење кодова биће непотпуно ако код сами не напишете.

Препоручени чланци

Ово је водич за Рунтиме Полиморфизам на Јави. Овде ћемо расправити како Полиморфизам рунтиме делује у Јави са примерима. Можда ћете такође погледати следеће чланке да бисте сазнали више -

  1. Статичка кључна реч у Јави
  2. Превладавање у Јави
  3. Шта је полиморфизам?
  4. Руст вс Голанг

Категорија: