一个抽象方法,接口,标记为virtual的方法,你在派生类中去实现,或者改写他的功能,叫重写
在父类中定义了一个方法如: public string GetName(){ return "Name"}方法,在派生类中再次定义了一个同样的方法public string GetName(){ return "Value"} 则派生类覆盖了父类的方法
覆盖重写的区别:
重写:
public class C1
{
public virtual string GetName()
{
return "Name";
}
}
public class C2:C1
{
public override string GetName()
{
return "Value";
}
}
C1 c1 = new C2();
label1.Text = c1.GetName(); //子类已经重写了父类,输出为子类的值Value
public class C1
{
public string GetName()
{
return "Name";
}
}
public class C2:C1
{
public new string GetName()
{
return "Value";
}
}
C1 c1 = new C2();
label1.Text = c1.GetName(); //子类已经仅覆盖了父类,父类的GetName方法仍在,这样调用的是父类的GetName方法,输出为Name
重载是指在一个类中同名,但是参数列表不相同的方法组
如:
public class Test
{
public string GetName(string key)
{
return key;
}
public string GetName(int key)
{
return key.ToString();
}
}
这类的两个方法成为重载方法
相关文章:
- Java函数的的覆写(重写)@Override 2022-12-23
- 重载和重写以及重写的权限问题 2022-12-23
- Java 重写 & 重载 & super 关键字 2022-12-23
- java中重载与重写的区别 2022-12-23
- C# - 方法重载 2022-12-23
- C++中的覆盖、多态 2022-12-23
- java重载与重写的区别有哪些 1970-01-01
- C#中的运算符重载(以重载+为例) 2022-12-23