首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

方法的重写与重载有什么区别,该如何解决

2012-05-04 
方法的重写与重载有什么区别方法的重写与重载有什么区别 ???最好给个简单的例子说明一下空口说很难理解[解

方法的重写与重载有什么区别
方法的重写与重载有什么区别 ???最好给个简单的例子说明一下 空口说很难理解

[解决办法]
重写 父类的方法,自己看多态
重载 同名 ,不同参数,如下
private void Add()
{
}
private void Add(int i,int j)
{
}
[解决办法]
在C++时代,静态联编使得方法重写用到了方法重载,因为C++的一些编译器会将this指针作为参数传递给成员函数,而所谓的成员函数,其实就是普通的函数:

C/C++ code
class A{    public: void foo(int x) { }};class B : public A{    public: void foo(int x) { }};
[解决办法]
重写 是父类和子类之间的同名方法的一种关系
重载 是单个类内部的各种同名方法的一种关系

重写 的方法的签名必须完全一致
重载 的方法的签名可以不一致
[解决办法]
但是C++不但支持静态联编,还支持动态联编。
动态联编的实质是借助一个“虚函数表”,在程序运行的时候判断应该执行哪一个函数:
C/C++ code
class A{    public: virtual void foo(int x) { }};class B : public A{    public: virtual void foo(int x) { }}; 

热点排行