多态的应用
2010-05-13 13:44 三皮开发时 阅读(180) 评论(0) 编辑 收藏 举报
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
namespace First
{
public class Animal //动物类
{
public void NoVirtual() //非虚方法
{
Console.WriteLine("我不是虚方法");
}
public virtual void Bark() //虚方法
{
Console.WriteLine("动物会叫~");
}
}
public class Dog : Animal //狗
{
public override void Bark()
{
Console.WriteLine("狗是旺旺叫~");
}
new public void NoVirtual() //有意隐藏NoVirtual方法 ,需加new
{
Console.WriteLine("狗动物的非虚方法");
}
}
public class Inlet
{
static void Main(string[] args)
{
Animal animate = new Animal();
animate.Bark();
Animal dog = new Dog(); //多态
dog.Bark(); //虚方法重写后会覆盖Bark方法
dog.NoVirtual();//非虚方法调用的还是Animal下的NoVirtual
}
}
}
{
public class Animal //动物类
{
public void NoVirtual() //非虚方法
{
Console.WriteLine("我不是虚方法");
}
public virtual void Bark() //虚方法
{
Console.WriteLine("动物会叫~");
}
}
public class Dog : Animal //狗
{
public override void Bark()
{
Console.WriteLine("狗是旺旺叫~");
}
new public void NoVirtual() //有意隐藏NoVirtual方法 ,需加new
{
Console.WriteLine("狗动物的非虚方法");
}
}
public class Inlet
{
static void Main(string[] args)
{
Animal animate = new Animal();
animate.Bark();
Animal dog = new Dog(); //多态
dog.Bark(); //虚方法重写后会覆盖Bark方法
dog.NoVirtual();//非虚方法调用的还是Animal下的NoVirtual
}
}
}
运行代码:
![](https://images.cnblogs.com/cnblogs_com/sanpi/1test.jpg)