C#子类如何重写父类的方法

Gwen ·
更新时间:2024-09-20
· 655 次阅读

子类重写父类的方法代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace 视频3._5 { class Program { static void Main(string[] args) { Person p = new Person(); //实例化父类的对象 p.Show(); //调用父类方法 Teacher t = new Teacher(); //实例化子类对象 t.Show(); //调用子类方法 Console.ReadKey(); } public class Person //父类人类 { private string _name; //字段 public string Name //属性 { get { return _name; } set { _name = value; } } private int _age; public int Age { get { return _age; } set { _age = value; } } private char _gender; public char Gender { get { return _gender; } set { _gender = value; } } public virtual void Show() //虚方法--- { Console.WriteLine("我是人别害怕"); } } public class Teacher : Person { public override void Show()//重写父类方法 { Console.WriteLine("我是老师别害怕"); } }

说明如下:

子类的方法名可以和父类的方法名重写,但是代码会出现一条绿线,并不影响使用。 怎么解决——可以在子类的publi修饰符后面加 new 就解决了,无论是否加new都不影响使用。 第二种解决绿线的办法:在父类的方法的public修饰符后加 virtual 在子类中重写父类的方法,加上一个override。调用父类的方法,但是把父类的方法进行重写了 更换了方法里面的内容 虚方法不能用static修饰、不能写成静态的,已经是虚方法了没有必要变成静态的。private在本类中只能访问、子类访问不到,写成虚方法就是为了让其他子类重写。 virtual不能与private一起使用 子类当中可以拿到父类的方法、子类中new下就OK了
作者:久违。。。



C# 重写 父类 方法 子类

需要 登录 后方可回复, 如果你还没有账号请 注册新账号
相关文章