c#关于引用的问题

来源:百度知道 编辑:UC知道 时间:2024/05/09 22:42:48
using System;
using System.Collections.Generic;
using System.Text;

namespace polymorphismtest
{
class animal
{
public animal()
{
Console.WriteLine("animal构造函数");
}
public void greet()
{
Console.WriteLine("animal问候");
}
public void talk()
{
Console.WriteLine("animal说话");
}
public virtual void sing()
{
Console.WriteLine("animal唱歌");
}
}
class dog :animal
{
public dog()
{
Console.WriteLine("dog构造函数");
}
public new void talk()
{
Console.WriteLine("dog说话");
}
public override void sing()
{
C

animal a2 = new dog();//这是我不明白的地方请帮助一下好吗
这句话相当于做了一个向上映射(up cast),和下面这句话是一样的道理:
animal a1 = new animal();
dog a2;
a2 = (dog)a1;