zoukankan      html  css  js  c++  java
  • 父类和子类的构造函数

     public abstract class A
        {
            public A()
            {
                Console.WriteLine('A');
            }
            public virtual void Fun()
            {
                Console.WriteLine("A.Fun()");
            }
        }
    
        public class B : A
        {
            public B()
            {
                Console.WriteLine('B');
            }
            public new void Fun()    
            {
                Console.WriteLine("B.Fun()");
            }
        }
    
        class Program
        {
            static void Main(string[] args)
            {
                A a = new B();
                a.Fun();
                Console.ReadKey();
            }
        }

    如果把B类中的new改为override的话

    输出结果就为

    B

    B.Fun()

    取自http://www.cnblogs.com/jiekzou/p/4457384.html

    解答:[http://bbs.csdn.net/topics/390099393]

     C#中,如果子类没有显示调用父类的有参构造函数:那么它会自动调用父类的无参构造函数;如果父类没有无参构造函数,将通不过编译。

    补充:一般是这么调用父类的有参构造函数的

    class A
        {
            internal int number;
            public A(int n)
            {
                number = n;
                Console.WriteLine("A的构造函数");
            }
        }
    
        class B : A
        {
            public B(int n)
                : base(n)
            {
                Console.WriteLine("B的构造函数");
            }
        }
    
        class Program
        {
            static void Main(string[] args)
            {
    
                A a = new B(3);
                Console.WriteLine(a.number);
                Console.ReadKey();
            }
        }
  • 相关阅读:
    php知识点
    CommonsChunkPlugin知识点
    待学习
    svn知识点
    es6知识点
    webpack2新特性
    排序算法
    交流措辞
    js继承
    多行编辑软件
  • 原文地址:https://www.cnblogs.com/chucklu/p/4461365.html
Copyright © 2011-2022 走看看