1
97
如果省略对基构造函数的调用,它将自动调用默认的基构造函数。 如果没有默认构造函数,则必须显式调用基构造函数。
即使存在默认构造函数,您仍可能希望调用与默认构造函数不同的构造函数。在这种情况下,您可能仍然希望使用
我不认为省略是一种坏习惯
此语法允许您调用同一类中具有不同签名的一个构造函数。这不是强制性的,但有时是有用的。 在构造函数中重用公共代码是一个很有用的例子。例如,在C 3.5或之前版本中,您可能希望在构造函数上模拟可选参数:
使用C 4.0,现在可以使用可选参数,从而减少了对这种方法的需要。 在构造函数中重用代码的另一种方法是将代码分解成一个静态函数,该静态函数由每个希望使用它的构造函数调用。 |
2
31
首先,当他们是强制性的。
当一个班
什么时候是良好的实践?每当您想调用不同的构造函数时。 假设您在前面的示例中向派生的构造函数添加内容。
你注意到这里的复制品了吗?调用this()构造函数更简单。
|
3
27
使用
使用
基本上, 在构造函数的头中使用base和this是为了保留代码 DRY 使其更易于维护,更不冗长 这是一个毫无意义的例子,但我认为它说明了如何使用这两个概念。
用途:
|
4
8
寻找“C_中的构造函数链接”。基本上是这样的:
它有助于消除构造函数中的代码重复——将它们拆分为基本部分和特定部分。 |
5
4
当您希望将基类的构造函数自动调用为构造函数的第一条指令时,可以使用:base()。:this()类似,但它在同一类上调用另一个构造函数。 在基:()和this():可以作为参数常量值或基于构造函数参数的表达式传递。 当基类没有默认构造函数(不带参数的构造函数)时,必须调用基构造函数。我不知道哪种情况下:这个()是强制的。
|
lehermj · 在java中创建类实例的问题 7 年前 |
Thufir · 用ruby实例化Foo?[副本] 7 年前 |
user1094081 · 基于函数参数创建类实例[重复] 7 年前 |