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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 闫常国 中级黑马   /  2013-5-10 15:28  /  1775 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 闫常国 于 2013-5-11 19:08 编辑

C#中构造方法是否能被继承?

3 个回复

倒序浏览
构造函数是不可以被继承的。要想访问基类的构造函数只能使用base关键字,如下:
class A:B
{  
       public A()
           :base()
       {}
}
回复 使用道具 举报
1、构造函数不继承,派生类会自动调用基类构造函数。
2、若类内没有定义构造函数,系统会自动隐式生成一个不带参数的构造函数,比如定义一个类:
public class A
{
}
可以理解为它已经存在一个如下的构造函数

public class A
{
    public A()
    {
      
    }
}
3、派生类构造函数自动调用基类的不带参数的构造函数,注意下面的格式
public class B:A
{
    public B()
    {
      
    }
}
相当于
public class B:A
{
    public B():base()
    {
      
    }
}


3、基类中带参数的构造函数必须显式调用,比如:
public class A
{
    public A()
    {
      
    }
    public A(string str)
    {
      
    }

}
public class B:A
{
    public B():base("aaa")
    {
      
    }
}
回复 使用道具 举报
不可以。
子类继承自父类,只继承字段和方法,
调用子类的构造方法,会先调用父类的构造方法。
:)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马