黑马程序员技术交流社区
标题:
重载 复写
[打印本页]
作者:
谢玲
时间:
2012-12-18 10:39
标题:
重载 复写
重载和复写有什么区别?怎样区分重载和复写??
作者:
种生祥
时间:
2012-12-18 10:48
复写是子类的方法覆盖父类的方法,要求方法名和参数都相同
重载是在同一个类中的两个或两个以上的方法,拥有相同的方法名,但是参数却不相同,方法体也不相同,
最常见的重载的例子就是类的构造函数。
作者:
唐海军
时间:
2012-12-18 10:50
重载是一个类中,名称相同,但是参数类型或数目不同。重写是子类中重新定义了跟父类的方法。
作者:
王晨
时间:
2012-12-18 11:00
重载是在一个类定义中,可以编写几个同名的方法,但是只要它们的签名参数列表不同,J就会将它们看做唯一的方法;重载可使函数、运算符等处理
不同类型数据或接受不同个数的参数的一种方法;它发生在同一个类中。
例如:
class MainClass
{
struct Vector
{
public double x, y, z;
public Vector(double x, double y, double z)
{
this.x = x;
this.y = y;
this.z = z;
}
public Vector(Vector rhs)
{
x = rhs.x;
y = rhs.y;
z = rhs.z;
}
public override string ToString()
{
return "(" + x + "," + y + "," + z + ")";
}
public static Vector operator +(Vector lhs, Vector rhs)
{
Vector result = new Vector(lhs);
result.x += rhs.x;
result.y += rhs.y;
result.z += rhs.z;
return result;
}
}
static void Main()
{
Vector vect1, vect2, vect3;
vect1 = new Vector(3.0, 3.0, 1.0);
vect2 = new Vector(2.0, -4.0, -4.0);
vect3 = vect1 + vect2;
Console.WriteLine("vect1=" + vect1.ToString());
Console.WriteLine("vect2=" + vect2.ToString());
Console.WriteLine("vect3=" + vect3.ToString());
}
}
上例定义了一个在数学中常见的矢量相加的+号重载
复制代码
至于复写我还不太懂,就暂时不班门弄斧了,等我学通了再来告诉你吧!
作者:
张亚鑫
时间:
2012-12-18 12:01
重写 是父类和子类之间的同名方法的一种关系
重载 是单个类内部的各种同名方法的一种关系
重写 的方法的签名必须完全一致
重载 的方法的签名可以不一致
作者:
徐威
时间:
2012-12-18 13:42
1方法重载 2方法复写
概念:1 方法名称相同,参数的个数或者类型不同 2 方法名称相同,参数的个数和类型相同,方法的访问权限不能更严格
使用范围:1 发生在同一个类中 2发生在继承关系中,是由子类进行复写
作者:
王斌
时间:
2012-12-18 17:22
重载 ,对于函数重载 就是方法的名字相同,返回值可以不同,但是参数个数或是参数类型必须不同,这样才可区分你要调用的方法,同一个类中
重写, 是类与类之间的=,两个类一定的继承关系的,才可以重写,对重写的要求就是,方法名相同,返回值类型相同,参数个数及类型相同
作者:
李先洋
时间:
2012-12-18 20:24
1.
从概念上面来讲
重载: 方法名称相同,参数类型 个数不同
复写:方法名称相同,权限尽量相同,参数类型个数相同
2.
从范围上面来讲
重载:出现在同一个类当中
复写:出现在继承关系中
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2