温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C#中的类02:构造对象

发布时间:2020-07-04 13:06:24 来源:网络 阅读:402 作者:mista 栏目:编程语言

1:构造方法的可访问性

构造方法可以是共有的或私有的。


2:默认构造方法

默认构造方法就是不带参数的构造方法。

如果没有为类添加任何构造方法,系统会自动生成一个隐藏的默认构造方法;但如果用户添加了任意一个构造方法,系统就不会自动生成默认的构造方法了。也就是说,如果用户为类添加了自己的定义的构造方法,那么就只能使用用户定义的这些构造方法来生成对象了。


3:构造方法调用构造方法

格式如下:

构造方法名(参数列表) : this(参数列表)

{

    方法体

}

举例:

class DerivedClass
{
    public DerivedClass() : this(100)
    {
        Console.WriteLine("Derived Class's Default Constructor");
    }

    public DerivedClass(int i)
    {
        Console.WriteLine("Derived Class's Constructor with Param: {0}", i);
    }
}

和Java的区别

Java中,构造方法调用另一个构造方法也是使用this(参数)的方法,但Java是将其作为一条语句放在方法体中的,而且这条this语句还必须是方法体的第一条语句。


4:在继承结构中,父类对象的生成

和C++、Java一样,如果有继承结构,那么在生成子类对象时会先生成父类对象。

默认情况下,在执行子类的构造方式(所有的构造方法)时会先自动调用父类的默认构造方法以生产父类对象,所以,如果在子类的构造方法中没有特别说明,而父类又没有默认的构造方法,系统会提示出错。

一般情况下,我们会在子类的构造方法中明确的告诉系统,子类的构造方法要调用父类的哪个构造方法。

格式如下:

子类的构造方法名 : base(参数列表)

{

方法体

}

这样,在执行这个构造方法之前,系统会先调用父类的相应的构造方法。

与Java的区别:Java中使用的关键字是super,而且也是作为语句放置于方法体的开头。



向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI