source:http://topic.csdn.net/t/20040224/15/2770426.html
1.首先说重载(overload),是发生在同一类中。与什么父类子类、继承毫无关系。
标识一个函数除了函数名外,还有函数的参数(个数和类型)。也就是说,一个类中可以有两个或更多的函数,叫同一个名字而他们的参数不同。
他们之间毫无关系,是不同的函数,只是可能他们的功能类似,所以才命名一样,增加可读性,仅此而已!
它是面向过程的设计方法与面向对象无关。说什么是多态的表现方式,真是狗屁不通!
2. 再说覆盖(override),是发生在子类中!也就是说必须有继承的情况下才有覆盖发生。
我们知道继承一个类,也就有了父类了全部方法,如果你感到哪个方法不爽,功能要变,那就把那个函数在子类中重新实现一遍。
这样再调用这个方法的时候,就是执行子类中的过程了。父类中的函数就被覆盖了。(当然,覆盖的时候函数名和参数要和父类中完全一样
,不然你的方法对父类中的方法就不起任何作用,因为两者是两个函数,毫不关系)
3. 最后说多态(polymorphism),这个n多大师都有经典论述,我不敢多说什么。
提醒一句,这个也是必须有继承发生的情况下,而且必须有上溯造型的时候才有多态
自己的补充:觉得覆盖是多态的基础,这样父类对象的引用可以动态调用实际类型的子类的方法;