虚方法

作者: 扶不起的蝌蚪 | 来源:发表于2021-08-10 20:09 被阅读0次

    虚方法实际上是多态的实现形式之一(虚方法、抽象方法、接口)

    如果在父类中标记了虚方法

    • 如果子类没有重写虚方法,那么里氏转换的所调用的方法是父类自己的方法
    • 如果子类重写了虚方法,那么里氏转换所调用的方法就是子类的方法,但是子类中没有重写虚方法的那些方法仍然无法调用
    • 虚方法必须要有方法体,方法体内可以写业务逻辑,因为子类不重写,它就是调的父类的这个虚方法。

    语法

    访问修饰符 virtual 返回值 函数名()
    {
    }
    
    class Program
        {
            static void Main(string[] args)
            {
                Person p = new Student();
                p.SayPerson();
                Person p1 = new Teacher();
                p1.SayPerson();
                Console.ReadKey();
            }
        }
        public class Person
        {
            public virtual void SayPerson()
            {
                Console.WriteLine("我是Person类方法");
            }
        }
        public class Student:Person
        {
            public override void SayPerson()
            {
                Console.WriteLine("我是Student类重写父类的方法");
            }
            public void SayStudent()
            {
                Console.WriteLine("我是Student类方法");
            }
        }
        public class Teacher : Person
        {
            public override void SayPerson()
            {
                Console.WriteLine("我是Teacher类重写父类的方法");
            }
            public void SayTeacher()
            {
                Console.WriteLine("我是Person类方法");
            }
        }
    

    相关文章

      网友评论

          本文标题:虚方法

          本文链接:https://www.haomeiwen.com/subject/mqyfbltx.html