A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© guoguo 中级黑马   /  2014-1-4 11:00  /  1724 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 guoguo 于 2014-1-5 15:42 编辑

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

评分

参与人数 1技术分 +1 收起 理由
茹化肖 + 1

查看全部评分

5 个回复

倒序浏览
单继承机制,一个子类只能有一个父类
c#不允许一个一个子类有多个父类
c#允许接口多重继承,不允许类多重继承,所以在c#中实现两个或者两个以上继承,只能通过接口来实现

评分

参与人数 1技术分 +1 收起 理由
茹化肖 + 1

查看全部评分

回复 使用道具 举报
我认为派生类肯定要执行基类的构造函数。
  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. */
复制代码



评分

参与人数 1技术分 +1 收起 理由
茹化肖 + 1

查看全部评分

回复 使用道具 举报
子类是必须调用父类的构造函数的吧
回复 使用道具 举报
好像是的
回复 使用道具 举报
可以不调用,子类写自己的构造类中,不用super().初始化父类的属性和自己属性
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马