zoukankan      html  css  js  c++  java
  • 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();
        }
    }
    

  • 相关阅读:
    使用opencv显示视频的方法
    使用visual studio 2012 编译opencv2.4.9
    求前100个斐波那契数
    EXTJs前后台交互 常用哦3种方式
    spring 注解
    程序 人生
    ajaxs
    LNMP源码安装脚本
    系统状态统计和查看
    Shell中的${}、##和%%使用范例
  • 原文地址:https://www.cnblogs.com/del/p/1367016.html
Copyright © 2011-2022 走看看