黑马程序员技术交流社区
标题:
关于C#中,继承类重写与隐藏基类方法的区别!
[打印本页]
作者:
hongiqnglik
时间:
2013-8-6 22:54
标题:
关于C#中,继承类重写与隐藏基类方法的区别!
关于C#中,继承类重写与隐藏基类方法的区别是什么?
作者:
lvjayj
时间:
2013-8-6 23:07
使用Override修饰符对方法进行重写时,基类中的方法必须是Abstract或Virtual的,这时使用override修饰符,就可以修改基类中抽象或虚方法的实现。
隐藏基类中的方法一般是使用new关键字,并不要求基类中的方法是Abstract或Virtual,可以使用new关键字重写基类中的方法。
作者:
范国伟
时间:
2013-8-6 23:19
本帖最后由 范国伟 于 2013-8-6 23:22 编辑
重写是对基类中方法的修改,隐藏是不用基类方法 有重新定义了一个同名的方法,这个方法基类无法调用,是属于子类的方法。
class Program
{
static void Main(string[] args)
{
Person p1 = new Son(); //声明的是基类对象 指向派生类
p1.Say();//调用的是子类方法
Person p2 = new Daughter();
p2.Say(); //调用的是基类方法
Console.ReadKey();
}
}
public class Person
{
public virtual void Say() //父类中的虚方法
{
Console.WriteLine("我是人");
}
}
public class Son :Person
{
public override void Say() //子类重写父类的虚方法
{
Console.WriteLine("我是son");
}
}
public class Daughter :Person
{
public new void Say() //子类隐藏父类方法
{
Console.WriteLine("我是女儿");
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2