菜鸟关于 Employee e = new Manager() 的疑问
已知Manager extends Employee,
现在Employee e = new Manager()
----------------
请问各路高手,对此如何理解?在什么情况下使用这种方法?最好举出更具体的例子。
谢谢。
这样做不但正确而且是最好的做法,利用了面向对象的多态性.
而且是一种设计模式.
举个例子说明一下这种用法的好处:
假如类Employee有两个子类Manager1和Manager2.
利用上面的做法可以这样用,
Employee e = new Manager1();
...
e = new Manager2();
...
这样对象e可以代表所有的Employee类的子类对象.
可是用这样用,
Manager1 e = new Manager1();
...
e = new Manager2(); (错误用法)
...
这样e对象只能代表Manager1子类对象了.
这种用法在很多设计模式中的核心技术(如工厂模式).
详细的可以自己看一下.
http://expert.csdn.net/Expert/topic/1480/1480286.xml?temp=.4065058
这个是那本书上的例子嘛?呵呵
Jin901(求学者) 解答的非常好,这就是OOP中的多态,实现动态连接用的,非常有用啊,如果不懂的话,等看完cast一节后肯定会明白的!