zoukankan      html  css  js  c++  java
  • [C#] 小记 new 和 override 关键字

    C#要想实现函数的override,要求和C++一样,父类的函数必须用virtual关键字注明,随后在子类中用override关键字表明重写的函数。

    子类同名函数定义时,如果什么都不写,或者使用new 关键字,效果都表示父类的同名函数将被隐藏。

    也就是说,子类有子类的函数,父类有父类的函数,井水不犯河水。

    需要注意的是:若B是A的子类,我们通过 A a = new B()的方式实例化一个B的实例,调用那个函数仍然是调用A的中的函数。

    一个简洁的例子:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace PolymophismTest
    {
        class Program
        {
            static void Main(string[] args)
            {
                A btest = new B();
                btest.F(); //输出"B.F"
                btest.G(); //输出"A.G"
            }
        }
    
        public class A
        {
            public virtual void F()
            {
                Console.WriteLine("A.F");
            }
            public void G()
            {
                Console.WriteLine("A.G");
            }
        }
        public class B : A
        {
            public override void F()
            {
                Console.WriteLine("B.F");
            }
            public new void G()
            {
                Console.WriteLine("B.G");
            }
        }
    }
  • 相关阅读:
    JAVA EE获取浏览器和操作系统信息
    ANT与SVN集成
    ANT property三种使用方式
    跨机器的文件夹访问和传输方法
    yolov5网络结构分析
    点到直线距离计算及g++编译
    深拷贝与浅拷贝(c++和python)
    qt工程环境设置
    Git 篇
    PyCharm 使用的技巧
  • 原文地址:https://www.cnblogs.com/felixfang/p/3591122.html
Copyright © 2011-2022 走看看