zoukankan      html  css  js  c++  java
  • C# 中 重载,重写,隐藏的区别

    重载: 就是写多个同名方法,参数个数不同或类型不同或返回值不同

    重写:子类中实现的方法必须加override关键词   普通非抽象父类需要virtual 抽象类里面抽象方法abstract 接口的实现也是重写(更准确的应该说是实现,但是子类不需要override)
    隐藏:等同于覆盖,A类(父类)可以普通实现,B类继承,new 一个和A中一样的方法。可以说算是重写方法的实现,但是不会修改到A中的方法。
     
    具体区别如下:
    static void Main(string[] args)
            {
                B b = new B();
                b.ClassA();
                A a = b;
                a.ClassA();
    
                Console.WriteLine("
    ");
    
                B2 b2 = new B2();
                b2.ClassA2();
                A2 a2 = b2;
                a2.ClassA2();
    
                Console.ReadKey();
            }
        }
    
        //
        class A
        {
            public void ClassA()
            {
                Console.WriteLine("A.ClassA()");
            }
        }
        class B : A
        {
            new public void ClassA()
            {
                Console.WriteLine("B.ClassA()");
            }
    
        }
    
        //
        class A2
        {
            public virtual void ClassA2()
            {
                Console.WriteLine("A2.ClassA2()");
            }
        }
        class B2 : A2
        {
            public override void ClassA2()
            {
                Console.WriteLine("B2.ClassA2()");
            }
        }
    
    
    }
    

    C++也是类似

    class A
    {
    public:
        virtual void print()
        {
            printf("AAAAAA");
        }
    };
     
    class B :public A
    {
    public:
        void print()
        {
            printf("BBBBB");
        }
    };
     
    int main()
    {
        
        B *b = new B();
        
        b->print();
        A *a = b;
        a->print();
        return 0;
    }
    

      

     
    一个苦逼程序员
  • 相关阅读:
    protobuf 协议 windows 下 C++ 环境搭建
    protobuf 协议 windows 下 java 环境搭建
    ProtocolBuffers (二) android与PC,C#与Java 利用protobuf 进行无障碍通讯【Socket】
    C++ ofstream和ifstream详细用法
    C# 关于out和ref的问题
    java 解析office文件 大全
    Ezhuang
    IOS
    Android Client and PHP Server
    一个IM开源项目LiteTalk
  • 原文地址:https://www.cnblogs.com/root_u/p/5151049.html
Copyright © 2011-2022 走看看