黑马程序员技术交流社区

标题: C#中构造方法是否能被继承? [打印本页]

作者: 闫常国    时间: 2013-5-10 15:28
标题: C#中构造方法是否能被继承?
本帖最后由 闫常国 于 2013-5-11 19:08 编辑

C#中构造方法是否能被继承?
作者: 王宝生    时间: 2013-5-10 15:30
构造函数是不可以被继承的。要想访问基类的构造函数只能使用base关键字,如下:
class A:B
{  
       public A()
           :base()
       {}
}
作者: 许大虾    时间: 2013-5-10 15:44
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")
    {
      
    }
}
作者: 陈晖    时间: 2013-5-10 17:11
不可以。
子类继承自父类,只继承字段和方法,
调用子类的构造方法,会先调用父类的构造方法。
:)




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