zoukankan      html  css  js  c++  java
  • 继承和多态

    1.Abstract does force all the derived classes to implement the method, but nothing forces the derived derived classes to implement its own DrawWindow() method.
    //sealed不允许被派生
    复制代码
    abstract class Control
    {
        public virtual void A()
        {
            Console.WriteLine("A");
        }
    
    }
    复制代码

    定义抽象类之后Control类并不能被使用

    2.重写基类函数的两种方法

    去掉abstract

    Use new  to indicate that it is not an override of the base method in Control class.

    复制代码
    class ListBox : Control
    {
        public new virtual void A()
        {
            Console.WriteLine("B");
        }
    }
    
    class MainClass
    {
        static void Main(string[] args)
        {
            Control console;
            console = new ListBox();
            console.A();
        }
    }
    复制代码

    输出A

    Use override to indicate that it does want to override of the base method in Control class.
    复制代码
    class ListBox : Control
    {
        public override void A()
        {
            Console.WriteLine("B");
        }
    }
    
    class MainClass
    {
        static void Main(string[] args)
        {
            Control console;
            console = new ListBox();
            console.A();
        }
    }
    复制代码

    输出B

    public The type or member can be accessed by any other code in the same assembly or another assembly that references it.
    private The type or member can only be accessed by code in the same class or struct.
    protected The type or member can only be accessed by code in the same class or struct, or in a derived class.

    我真是认真的好孩子

  • 相关阅读:
    Logstash实践
    GitLab-CI部署及踩坑总结
    WebSocket ,Socket ,Http差异
    加快Gradle的构建过程
    关于Android 主题的那些事
    inflate()引发NullPointerException
    Android Error:Could not find lottie.jar
    GreenDao使用解析
    关于ActionBar 左侧添加完返回后 点击无效的问题
    Android 如何更改一个 imageview的颜色
  • 原文地址:https://www.cnblogs.com/czyhhxx/p/4396475.html
Copyright © 2011-2022 走看看