C#的多态问题,大家看看这个问题吧
Token.cs
using System;
namespace ParamsArray
{
/// <summary>
/// Token 的摘要说明。
/// </summary>
public class Token
{
public Token()
{
//
// TODO: 在此处添加构造函数逻辑
//
test = "Hello world";
}
public virtual string name()
{
return test;
}
private string test;
}
public class IdentifierToken : Token
{
public IdentifierToken(string Iden) :base()
{
IdenToken = Iden;
}
public virtual string name()
{
return IdenToken;
}
private string IdenToken ;
}
}
Tokentest.cs
using System;
namespace ParamsArray
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class Utiltest
{
public static void Method(Token t)
{
Console.WriteLine(t.name());
}
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
//
// TODO: 在此处添加代码以启动应用程序
//
IdentifierToken variable = new IdentifierToken("Variale");
Method(variable);
}
}
}
上面的程序,输出的结果是“Hello world",而不是Variale;
没有体现多态的方法,这是为什么?