重载(overload)和重写(override)的异同
相同点:重载和重写都是多态的表现。
不同点:
重载【发生在同一类或者子类中】,【方法名称相同】,但【参数列表不同】,【不需要特殊关键字】。
参数列表不同包括:参数类型,参数个数,参数顺序,三者有一个不同即可。
重写【发生在子类中】,子类对【父类的虚方法】进行重新实现,使用【override关键字】和【相同的方法名】进行重写。
new 隐藏关键字
把父类继承过来的F3,隐藏掉了(不再使用父类的逻辑)。
public new void F3()
{
Console.WriteLine("子类的业务逻辑F3");
}
new可以隐藏虚方法,不能隐藏抽象方法。
从效果上来看,new和override实现的效果(达到的目的)是一样的。
new的控制范围比override广一些。
new可以隐藏实例方法,不需要必须是abstract,virtual,override修饰符的方法