C# 虚方法
2021-06-20 10:03
标签:关键字 方法 col 方法重写 注意 stat 访问 pre task 使用new关键字来做调用 使用vitual虚方法和override重写 虚方法需要注意的地方: 1.重写虚方法必须要使用相同的可访问属性,如:private就不可以 2.不能重写static和非虚方法 3.方法、属性、索引器、事件都可以使用虚方法重写 C# 虚方法 标签:关键字 方法 col 方法重写 注意 stat 访问 pre task 原文地址:https://www.cnblogs.com/namejr/p/10263818.htmlusing System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
public class Aminal
{
public string Name; // 定义宠物的名字
public void PrintName()
{
Console.WriteLine("宠物的名字:" + Name);
}
}
// Dog继承Aminal类
public class Dog : Aminal
{
// 隐藏父类的PrintName
new public void PrintName()
{
Console.WriteLine("名字为:" + Name);
}
}
static void Main(string[] args)
{
// 使用new关键字隐藏,取决于通过什么类型的调用
//Dog dog = new Dog(); // 打印的是使用Dog里面的PrintName的方法
Aminal dog = new Dog(); // 调用的是Aminal里面的PrintName的方法
dog.Name = "your name";
dog.PrintName();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
public class Aminal
{
public string Name; // 定义宠物的名字
// 定义虚方法
virtual public void PrintName()
{
Console.WriteLine("宠物的名字:" + Name);
}
}
// Dog继承Aminal类
public class Dog : Aminal
{
// 重写
public override void PrintName()
{
// base.PrintName(); // 这个是调用父类的虚方法
Console.WriteLine("这是重写方法,{0}", this.Name);
}
}
static void Main(string[] args)
{
Aminal dog = new Dog(); // 输出的是重写方法的内容
dog.Name = "your name";
dog.PrintName();
}
}
}