【发布时间】:2012-06-20 09:51:12
【问题描述】:
当我开始寻找多态的好处时,我发现这里有this 的问题。但在这里我找不到我的答案。让我告诉我想找到什么。这里我有一些课程:
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 对象我可以调用Refrigerator 的trip() 方法,但是对于cm 对象,该方法将被隐藏。现在我的问题是我为什么要使用多态或者我为什么要使用
CoolingMachines cm = new Refrigerator();
当我同意时
Refrigerator rf = new Refrigerator();
多态对象的效率好还是重量轻?这两个对象的基本目的和区别是什么? cm.start();和rf.start()有区别吗?
【问题讨论】:
标签: java oop jakarta-ee polymorphism