标题: 方法重写和方法重载 [打印本页] 作者: 宋健 时间: 2013-3-12 20:05 标题: 方法重写和方法重载 方法重载和方法重写有什么区别?
具体在什么时候使用?作者: 于腾飛 时间: 2013-3-12 20:12
重写一般是指父类和子类之间,子类重写了父类的一个方法,当然方法名是一样的,而且不能改变父类方法的返回值,比如说父类是返回String,子类重写了这个方法,想返回一个int,那是不行的,也得返回String。
如 public class TestClass1{
public int test(int i){return 1;}
}
public class TestClass2 extends TestClass1{
public int test(int i){return 2;}
}
重载是一个类里面,写了多了同名的方法,各个方法的返回值类型可以不一样。要注意区分重载方法可以通过参数列表的个数,类型和顺序。但是不推荐用顺序来进行重载,这会让代码可读性极差。
如 public class TestClass{
public int test(int i){return 1;}
public int test(float f){return 1;}
} 作者: 徐鸿燕 时间: 2013-3-12 20:23
重载:只看函数的参数列表。
简单的说,一个类中的方法与另一个方法同名,但是参数表不同,这种方法称之为重载方法。
重载的方法只属于子类。
当需要对同一个方法进行不同的操作时(传递不同的参数)就用重载。
public class Person
{
public Person(string name)
{
this.Name = name;
}
public virtual void Show()
{
Console.WriteLine("父类中的show方法");
}
}
public class Chinese : Person
{
public Chinese(string name)
: base(name)
{
}
public override void Show()
{
Console.WriteLine("我叫:{0},我是中国人!",Name);
}
}
重载:
方法重载是让类以统一的方式来处理不同的参数类型或不同个数的参数的一种方法。方法重载就是类中可以创建多个方法,它们有相同的名字,但有不同的参数类型和参数个数,调用时通过参数类型参数个数的不同来决定具体调用哪个方法。
class Person
{
void name(string a)
{
Console.WriteLine("string a!");
}