黑马程序员技术交流社区

标题: 继承 [打印本页]

作者: guoguo    时间: 2014-1-4 11:00
标题: 继承
本帖最后由 guoguo 于 2014-1-5 15:42 编辑

有没有方法,可以让继承父类的子类不执行父类的构造方法呢?

作者: 涵风    时间: 2014-1-4 21:51
单继承机制,一个子类只能有一个父类
c#不允许一个一个子类有多个父类
c#允许接口多重继承,不允许类多重继承,所以在c#中实现两个或者两个以上继承,只能通过接口来实现
作者: lei130102    时间: 2014-1-5 07:35
我认为派生类肯定要执行基类的构造函数。
  1. //基类中必须有默认构造函数
  2. using System;
  3. class A
  4. {
  5.         ////去掉public A(){}会报错,在调用派生类构造函数之前会先调用基类默认构造函数,
  6.         ////若去掉下面所有构造函数(没有public A(){},public A(int a){..}),系统自动添加默认构造函数
  7.         public A()
  8.         {
  9.         }
  10.         //
  11.         public A(int a)
  12.         {
  13.                 Console.WriteLine("{0}",a);
  14.         }
  15. }
  16. class B:A
  17. {
  18.         public B()
  19.         {
  20.                 Console.WriteLine("hello,B");
  21.         }
  22. }
  23. class Test
  24. {
  25.         static void Main()
  26.         {
  27.                 A aa=new A(1);
  28.                 B bb=new B();
  29.                 A aa1=new B();
  30.         }
  31. }
  32. /*
  33. * 输出:
  34. * 1
  35. * hello,B
  36. * hello,B
  37. */
复制代码




作者: 王子斌    时间: 2014-1-5 10:59
子类是必须调用父类的构造函数的吧
作者: guoguo    时间: 2014-1-5 15:42
好像是的
作者: black_Dj    时间: 2014-1-6 19:51
可以不调用,子类写自己的构造类中,不用super().初始化父类的属性和自己属性




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2