• C# 语法练习(10): 类[二] 继承、覆盖、多态、隐藏



    继承:
    using System;
    
    class Parent
    {
        public void Msg() { Console.WriteLine("Parent"); }
    }
    
    class Child : Parent { }
    
    class Program
    {
        static void Main()
        {
            Parent ObjParent = new Parent();
            Child ObjChild = new Child();
    
            ObjParent.Msg(); //Parent
            ObjChild.Msg();  //Parent
    
            Console.ReadKey();
        }
    }
    

    覆盖:
    using System;
    
    class Parent
    {
        public virtual void Msg() { Console.WriteLine("Parent"); }
    }
    
    class Child : Parent 
    {
        public override void Msg() { Console.WriteLine("Child"); }
    }
    
    class Program
    {
        static void Main()
        {
            Parent ObjParent = new Parent();
            Child ObjChild = new Child();
    
            ObjParent.Msg(); //Parent
            ObjChild.Msg();  //Child
    
            Console.ReadKey();
        }
    }
    

    多态:
    using System;
    
    class Parent
    {
        public virtual void Msg() { Console.WriteLine("Parent"); }
    }
    
    class Child1 : Parent 
    {
        public override void Msg() { Console.WriteLine("Child_1"); }
    }
    
    class Child2 : Parent
    {
        public override void Msg() { Console.WriteLine("Child_2"); }
    }
    
    class Program
    {
        static void Main()
        {
            Parent Obj1 = new Child1();
            Parent Obj2 = new Child2();
    
            Obj1.Msg(); //Child_1
            Obj2.Msg(); //Child_2
    
            Console.ReadKey();
        }
    }
    

    隐藏:
    using System;
    
    class Parent
    {
        public void Msg() { Console.WriteLine("Parent"); }
    }
    
    /* 有意隐藏应使用 new 关键字 */
    class Child1 : Parent 
    {
        new public void Msg() { Console.WriteLine("Child_1"); }
    }
    
    /* 无意隐藏会有提示, 但可用 */
    class Child2 : Parent
    {
        public void Msg() { Console.WriteLine("Child_2"); }
    }
    
    class Program
    {
        static void Main()
        {
            Parent Obj1 = new Child1();
            Parent Obj2 = new Child2();
            Child1 Obj3 = new Child1();
            Child2 Obj4 = new Child2();
    
            Obj1.Msg(); //Parent
            Obj2.Msg(); //Parent
            Obj3.Msg(); //Child_1
            Obj4.Msg(); //Child_2
    
            Console.ReadKey();
        }
    }
    

  • 相关阅读:
    ACL2019对话、问答相关论文整理
    docker for windows添加卷映射
    聊聊多轮任务型对话那些事
    创建用户故事地图(User Story Mapping)的8个步骤
    关于如何做出好的产品
    知识体系整理
    关于如何做好需求的方法
    使用rasa搭建聊天机器人
    【转载】指代消解笔记
    计算机相关会议排名(一)
  • 原文地址:https://www.cnblogs.com/del/p/1367016.html
Copyright © 2020-2023  润新知