重载、重写、虚方法、抽象方法、隐藏方法小记
【C#】
- 重载:只有方法名相同
- 重写:都相同:被重写的方法必须是虚方法,virtual
- 虚方法:可以被重写的方法,virtual
- 抽象方法:必须在派生类中重写的方法,abstract
- 隐藏方法:派生类中定义的,同基类同名的方法,使用new关键字定义 :
技巧:
1、new可以隐藏基类虚方法或非虚方法;
2、隐藏方法中方法调用:
a、引用为虚方法,实例或其父类重写虚方法,执行重写的方法。
b、引用不为虚方法,直接调用引用方法;
3、重写方法调用看实例
重写方法:
代码块1
代码块语法遵循标准markdown代码,例如:
public class dad
{
public virtual void print()
{
Console.WriteLine("调用dad的print方法");
}
}
public class son : dad
{
public override void print()
{
Console.WriteLine("调用son的print方法");
}
}
调用1
dad d = new dad();
d.print();
son s = new son();
s.print();
dad ds = new son();
ds.print();
输出1
调用dad的print方法
调用son的print方法
调用son的print方法
隐藏方法:
代码块2
代码块语法遵循标准markdown代码,例如:
public class dad
{
public void print()
{
Console.WriteLine("调用dad的print方法");
}
}
public class son : dad
{
public new void print()
{
Console.WriteLine("调用son的print方法");
}
}
调用2
dad d = new dad();
d.print();
son s = new son();
s.print();
dad ds = new son();
ds.print();
输出2
调用dad的print方法
调用son的print方法
调用dad的print方法