Рубрики
Без рубрики

Полиморфизм в Java

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

Просто пересматриваю и объясняю свою концепцию полиморфизма здесь через сообщение в блоге. Слова “Полиморфизм” означают множественные формы. В Java полиморфизм означает несколько форм объекта . Мы разделим эту статью на 3 раздела. 1.Синтаксис 2.Вызов переменной полиморфно. 3.Вызов метода полиморфно.

3.Вызов метода полиморфно.

Теперь о полиморфизме в Java, о главном правиле, которое нужно запомнить является

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

Например: класс А{

} класс B расширяет A{ } класс C расширяет B{ } класс D расширяет A{ }

Таким образом, допустимый и недопустимый синтаксис в соответствии с правилом большого пальца будет

A a =new B();           //VALID
B b=new D();            //NOT VALID 
C c=new A();           //VALID
A a1=new D();           //VALID

2.Вызов переменной полиморфно.

Если переменная вызывается из полиморфного объекта, мы следуем ссылке т.е. класс супер . И если переменная отсутствует в суперклассе, это приводит к ОШИБКЕ КОМПИЛЯЦИИ. НАПРИМЕР:

class A{
int x=5;
}
class B extends A{
int x=10;
}
class App{
public static void main(String[]args){
A a=new B();
System.out.println(a.x); 
//What do u think is the output class A x value (5)or class B x value(10)?Follow the rule.

}
}
OUTPUT:
5

Вызов метода полиморфно.

Если метод вызывается из полиморфного объекта, мы выполняем 2-шаговую процедуру: 1.Мы добрались до суперкласса и проверяем, присутствует ли метод или нет.

if(present)
 Goto to step 2 
else
 COMPILE ERROR

2.Перейдите в подкласс и проверьте, переопределен ли метод или нет.

if(overrided)
 Call the sub-class version
else
 Call the super -class version.

Напр.:

class A{
void m1(){
System.out.println("A");
}}
class B extends A{
void m1(){
System.out.println("B");
}}
class App{
public static void main(String[]args){
A a=new B();
a.m1();          //Follow the rule
B=new B();
b.m1();          //Normal sub class object method call
}}
OUTPUT:
B
B

Так что это все для полиморфизма в java. Если какая-либо ошибка, пожалуйста, не стесняйтесь исправлять меня в комментариях (грамматически или иным образом).

Счастливого Обучения:)

Оригинал: “https://dev.to/shwetarkadam/polymorphism-in-java-260f”