zoukankan      html  css  js  c++  java
  • OverWrite

    OverWrite

    一、简介

    overwrite覆写,用new实现。在子类中用 new 关键字修饰定义的与父类中同名的方法,也称为覆盖,覆盖不会改变父类方法的功能。

    二、代码

    namespace 重寫
    {
        class Parent
        {
            public void F()
            {
                Console.WriteLine("Parent.F()");
            }
            //重写的属性必须是virtual、abstract或override
            public virtual void G() //虚方法
            {
                Console.WriteLine("Parent.G()");
            }
        }
        class ChildOne : Parent //子类一继承父类
        {
            new public void F() //覆写(overwrite)父类函数
            {
                Console.WriteLine("ChildOne.F()");
            }
            public override void G() //重写(override)父类虚函数,主要实现多态
            {
                Console.WriteLine("ChildOne.G()");
            }
        }
    
        class ChildTwo : Parent //子类二继承父类
        {
            new public void F()
            {
                Console.WriteLine("ChildTwo.F()");
            }
            public override void G()
            {
                Console.WriteLine("ChildTwo.G()");
            }
        }
        class Program
        {
            static void Main(string[] args)
            {
                Parent childOne = new ChildOne();
                Parent childTwo = new ChildTwo();
                //调用Parent.F()
                childOne.F();
                childTwo.F();
                //实现多态
                childOne.G();
                childTwo.G();
            }
        }
    }

    三、结果

    重写子类的方法,但是不会覆盖父类的方法。


    技术的发展日新月异,随着时间推移,无法保证本博客所有内容的正确性。如有误导,请大家见谅,欢迎评论区指正!
    我创建了一个.NET开发交流群,用于分享学习心得和讨论相关技术难题。欢迎有兴趣的小伙伴扫码入群,相互学习!

  • 相关阅读:
    面向对象的三个特征:封装(抽象)、继承、多态
    java中流程控制有4种循环,各自的适用场景
    break 和 continue
    基础知识点总结及示例
    Java程序的运行过程,以及Java为什么能够跨平台
    JDK,JRE,JVM的区别与联系?
    jsp(二)
    JSP
    过滤器
    Servlet监听器(二)
  • 原文地址:https://www.cnblogs.com/wml-it/p/14798720.html
Copyright © 2011-2022 走看看