主题:[讨论]一个C#的精典问题
各位,在C#中有这样一个问题:
using System;
namespace ConsoleApplication3
{
class Person
{
public Person()
{
classType="Person";
}
public virtual void g()
{
Console.WriteLine("这是person");
}
public void k()
{
Console.WriteLine("P.K");
}
public string classType;
}
class Manager:Person
{
public Manager()
{
classType="Manager";
}
public override void g()
{
Console.WriteLine("这是Manager");
}
new public void k()
{
Console.WriteLine("M.k");
}
new public string classType;
}
class Pd
{
public static void Main()
{
//Person p=new Person();
Person m=new Manager();
//showtype(p);
//showtype(m);
//m.g();
m.k();
m.g();
Console.WriteLine (m.classType);
}
}
}
为什么输出的是 “P.K"和”这是Manager"
而 不是"M.K"和“这是Manager"
new public void k()和public override void g()有什么区别呀。
using System;
namespace ConsoleApplication3
{
class Person
{
public Person()
{
classType="Person";
}
public virtual void g()
{
Console.WriteLine("这是person");
}
public void k()
{
Console.WriteLine("P.K");
}
public string classType;
}
class Manager:Person
{
public Manager()
{
classType="Manager";
}
public override void g()
{
Console.WriteLine("这是Manager");
}
new public void k()
{
Console.WriteLine("M.k");
}
new public string classType;
}
class Pd
{
public static void Main()
{
//Person p=new Person();
Person m=new Manager();
//showtype(p);
//showtype(m);
//m.g();
m.k();
m.g();
Console.WriteLine (m.classType);
}
}
}
为什么输出的是 “P.K"和”这是Manager"
而 不是"M.K"和“这是Manager"
new public void k()和public override void g()有什么区别呀。