方法的重写与重载有什么区别
方法的重写与重载有什么区别 ???最好给个简单的例子说明一下 空口说很难理解
[解决办法]
重写 父类的方法,自己看多态
重载 同名 ,不同参数,如下
private void Add()
{
}
private void Add(int i,int j)
{
}
[解决办法]
在C++时代,静态联编使得方法重写用到了方法重载,因为C++的一些编译器会将this指针作为参数传递给成员函数,而所谓的成员函数,其实就是普通的函数:
class A{ public: void foo(int x) { }};class B : public A{ public: void foo(int x) { }};
[解决办法]
重写 是父类和子类之间的同名方法的一种关系
重载 是单个类内部的各种同名方法的一种关系
重写 的方法的签名必须完全一致
重载 的方法的签名可以不一致
[解决办法]
但是C++不但支持静态联编,还支持动态联编。
动态联编的实质是借助一个“虚函数表”,在程序运行的时候判断应该执行哪一个函数:
class A{ public: virtual void foo(int x) { }};class B : public A{ public: virtual void foo(int x) { }};