Когда я начал искать преимущества полиморфизма, я нашел здесь этот вопрос. Но здесь я не смог найти свой ответ. Позвольте мне рассказать, что я хочу найти. Здесь у меня есть несколько классов:
class CoolingMachines{
public void startMachine(){
//No implementationion
}
public void stopMachine(){
//No implementationion
}
}
class Refrigerator extends CoolingMachines{
public void startMachine(){
System.out.println("Refrigerator Starts");
}
public void stopMachine(){
System.out.println("Refrigerator Stop");
}
public void trip(){
System.out.println("Refrigerator Trip");
}
}
class AirConditioner extends CoolingMachines{
public void startMachine(){
System.out.println("AC Starts");
}
public void stopMachine(){
System.out.println("AC Stop");
}
}
public class PolymorphismDemo {
CoolingMachines cm = new Refrigerator();
Refrigerator rf = new Refrigerator();
}
Теперь я создал два объекта в классе Demo и ссылаюсь на Refrigerator
. Я полностью понял, что из объекта rf
я могу вызвать метод trip()
Refrigerator
, но этот метод будет скрыт для объекта cm
. Теперь мой вопрос заключается в том, почему я должен использовать полиморфизм или почему я должен использовать
CoolingMachines cm = new Refrigerator();
когда я в порядке с
Refrigerator rf = new Refrigerator();
Является ли эффективность полиморфных объектов хорошей или легкой по весу? Какова основная цель и разница между обоими этими объектами? Есть ли разница между cm.start();
и rf.start()
?