重载和覆盖的区别?(overload vs override)

override与overload的区别?


override 表示重写,overload 表示重载。
override是子类和父类之间的关系,是垂直关系;overload是同一个类中方法之间的关系,是水平关系。
override只能由一个方法,或只能由一对方法产生关系;overload是多个方法之间的关系。
override要求参数列表相同;overload要求参数列表不同。
override关系中,调用那个方法体,是根据对象的类型(对象对应存储空间类型)来决定;overload关系,是根据调用时的实参表与形参表来选择方法体的。


方法签名 :由方法名称和一个参数列表(方法的参数的顺序和类型)组成。== 方法名 + 参数列表

重载:函数名和返回值相同,但参数的个数和类型可以不同

重写/覆盖:函数名返回值和参数必须完全相同(也即方法签名必须完全相同)

posted @ 2013-09-02 15:52  petercao  阅读(831)  评论(0编辑  收藏  举报