这个我知道,
比如我要实例化a,b是它的基类,
那么在实例化A的时候,.net是会去实例化B的啊

解决方案 »

  1.   

    首先你要明白继承的意义,子类继承基类,从面向对象的思想来说应该就是继承基类的属性和行为,从纯编程(写代码)基本目的就是为了实现代码重用!
    对于,子类的实例化,并不会作用于基类,因为子类的继承,已经把父类的所有属性和行为据为己有,如同copy.
      

  2.   

    这个我知道, 
    比如我要实例化a,b是它的基类, 
    那么在实例化A的时候,.net是会去实例化B的啊
    classA aa=new classA();
    这样只实例化A并没实例化它的基类B啊~
    但是B的东西可以被对象aa引用了~
      

  3.   

     class a
        {
            public a()
            {
                Console.WriteLine("aaaaaa");
            }
            
        }
        class b : a 
        {
            public b()
            {
                Console.WriteLine("bbbbbb");
            }
        }
        class Program
        {
            static void Main(string[] args)
            {
                b my = new b();
                Console.ReadKey();
            }
        }这段代码的输出结果是
    aaaaaa
    bbbbbb证明基类的构造函数还是会被调用的啊
      

  4.   

    构造函数是自动运行的~所以根本不用实例化~
    这里子类会自动运行基类的构造~但并没实例化啊~其实别的类也执行基类的构造,只不过像Object这样的类构造很可能为空~(具体我也没看过哈哈~)
      

  5.   

    很晕~你上面自己写的程序也没实例化基类a啊
    只是实例化了子类b,那么它还不是一样正常调用了?这样,就和书上冲突了呵呵~什么破书啊?
    偶给你推荐一本
    《概念到代码》
    韩磊 戴飞翻译的
    《Bengin C# Object From Concepts to Code》
      

  6.   

    C#入门经典(第3版)啊,这个还是权威吧.
    原话是:"要实现派生的类,必须实例化它的基类,要实例这个基类,必须实例这个基类的基类.这样一直实例到System.Object为止"这怎么说啊.
      

  7.   

    :"要实现派生的类,必须实例化它的基类,要实例这个基类,必须实例这个基类的基类.这样一直实例到System.Object为止" 
    是不是翻译有问题?我语言能力有限,感觉像是绕口令~要按你的理解你自己做的例子根本实现不了~
      

  8.   

        我想我理解你的意思```
        首先```实例化一个子类对像时```它首先会默认调用基类的构造函数(当基类中没有定义构任何构造函数时),然后才调用本身的构造函数```` 就比如你写的这些代码``
    class   a 
            { 
                    public   a() 
                    { 
                            Console.WriteLine("aaaaaa"); 
                    } 
                    
            } 
            class   b   :   a   
            { 
                    public   b() 
                    { 
                            Console.WriteLine("bbbbbb"); 
                    } 
            } 
            class   Program 
            { 
                    static   void   Main(string[]   args) 
                    { 
                            b   my   =   new   b(); 
                            Console.ReadKey(); 
                    } 
            }    而C#中有规定,抽像类不能够实例化,然后你就假设a是抽像类的话,当实例化b时,a不也就`````````````   楼主想说的应该是这个意思吧?!~之前我也没有注意到这些``听你这么一说似乎也觉得有些矛盾,认真想想``觉得应该是像14楼说的那样吧``调用跟实例是有区别的``不直接new抽象类就得````````这也是我自己的理解了``还是想听听高手的指点````` 继续关注中`````````