例子 解说 new override
来源:百度知道 编辑:UC知道 时间:2024/05/21 12:15:45
using System;
namespace hello
{
class Program
{
static void Main(string[] args)
{
contact ct1 = new class1();
contact ct2 = new class2();
ct1.prinf();
ct2.prinf();
Console.ReadLine();
}
}
abstract public class contact
{
public virtual void prinf()
{
Console.WriteLine("这是虚方法");
}
}
public class class1 : contact
{
public override void prinf()
{
Console.WriteLine("这是新的方法");
}
}
public class class2 : contact
{
public new void prinf()
{
Console.WriteLine("这是另一个新的方法&q
namespace hello
{
class Program
{
static void Main(string[] args)
{
contact ct1 = new class1();
contact ct2 = new class2();
ct1.prinf();
ct2.prinf();
Console.ReadLine();
}
}
abstract public class contact
{
public virtual void prinf()
{
Console.WriteLine("这是虚方法");
}
}
public class class1 : contact
{
public override void prinf()
{
Console.WriteLine("这是新的方法");
}
}
public class class2 : contact
{
public new void prinf()
{
Console.WriteLine("这是另一个新的方法&q
new关键字是隐藏基类里的方法的定义,要不基类有,子类也有,不混淆了吗?但是编译还是可以通过的,但会有编译警告.使用new就会隐藏这个警告,这样的隐藏.
但是只要不是重写(override0基类虚方法,就会执行基类的方法,所以还是执行了.