虚方法

作者: 扶不起的蝌蚪 | 来源:发表于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类方法");
        }
    }

相关文章

  • 25、虚方法和抽象类

    虚方法: •用virtual修饰的方法叫做虚方法•虚方法可以在子类中通过override关键字来重写•常见的虚方法...

  • 虚方法

    虚方法实际上是多态的实现形式之一(虚方法、抽象方法、接口) 如果在父类中标记了虚方法 如果子类没有重写虚方法,那么...

  • 虚方法

    1.如果子类重写了父类的虚方法,那么通过父类变量来调用这个方法的时候,会调用子类的2.属性的本质也是方法所以可以是虚的

  • 虚方法、抽象方法、实例方法、静态方法

    参考:JAVA中虚方法、抽象方法、实例方法、静态方法的辨别虚方法:可以被覆写(override)的方法。实例方法:...

  • Maple符号 实数虚数

    方法1 提取实部和虚部 计算 方法2 提取实部和虚部 计算 方法3 提取实部和虚部 计算

  • C#

    虚方法 1.方法替换---在子类中重新实现父类中定义的方法。 2.只有方法和属性是虚,字段不能是虚。 多态 使用父...

  • 方法 Day0816

    重写方法override:用相同的签名重写所继承的虚方法 重写是对虚方法(virtua)进行override...

  • 多态

    非多态实现方式 使用多态 1.虚方法 2.抽象类3.接口 虚方法 抽象类,抽象方法 和虚方法的区别在于,一个父类实...

  • 10、虚方法

    定义: 要求在继承中,子类重写的方法的方法名,返回值类型、参数列表相同。 看下面的例子来理解:virtual :...

  • 12、隐藏方法和虚方法的区别

    1. 概念上的不同: 虚方法: 隐藏方法: 2 调用上的不同: 虚方法的调用: 隐藏方法的调用: 调用不同的举例

网友评论

      本文标题:虚方法

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