标签:关键字 方法 col 方法重写 注意 stat 访问 pre task
使用new关键字来做调用
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; // 定义宠物的名字 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(); } } }
使用vitual虚方法和override重写
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(); } } }
虚方法需要注意的地方:
1.重写虚方法必须要使用相同的可访问属性,如:private就不可以
2.不能重写static和非虚方法
3.方法、属性、索引器、事件都可以使用虚方法重写
标签:关键字 方法 col 方法重写 注意 stat 访问 pre task
原文地址:https://www.cnblogs.com/namejr/p/10263818.html