• 继承与重写


    重载与重写是C#面向对象的多态性的重要体现。

    如下面的示例:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace ConsoleApplication1
    {
        public class A
        {
            public virtual void  fun1()
            {
                Console.WriteLine("A.fun1");
            }
            public void fun2(B test)
            { 
                test.fun1();
                fun1();
            }
        }
        public class B:A
        {
            public new void fun1()
            {
                Console.WriteLine("B.fun1");
            }
        }
        class Program
        {
            static void Main(string[] args)
            {
                A yktest = new B();
                B test = new B();
                yktest.fun2(test);
                Console.ReadKey();
            }
        }
    }
    

    该例中显式的用new关键字重写方法,因此不会对父类方法进行覆盖。运行结果会是B.fun1  A.fun1.

    如果用关键字override则运行结果是B.fun1  B.fun1.

  • 相关阅读:
    6.5 列出当前目录所有文件
    6.4 协程写文件
    6.3 写文件
    6.2 创建空目录
    6.1 os 获取文件状态
    5.13 json
    es2016
    短路原理
    fexbox
    vue @
  • 原文地址:https://www.cnblogs.com/ykwang/p/3009539.html
Copyright © 2020-2023  润新知