|
|
1
1
您需要生成
衍生的
现在上课,不是基础课。将旧呼叫替换为
解释:除非是派生类类型,否则不能将基类强制转换为派生类。这将起作用:
但这不会:
|
|
|
2
1
这是错误的做法-您需要创建accountxtra对象,然后可以将其作为帐户对象在任何地方进行处理。 顺便说一下,如果您不确定要在列表创建代码中创建什么类型的对象,您可能需要阅读 factory patterns . 请随时用您遇到的具体问题更新您的问题。 |
|
|
3
1
不能将基类转换为子类。换句话说,如果对象的类型为“account”,则不能将其强制转换为“accountxtra”。但是,如果您有一个“accountxtra”类,因为它继承自“account”,那么您可以将它强制转换为account。 如果已有代码的源代码,则需要更改它调用“new account()”构造函数的位置,并将其更改为“new accountxtra()”。您还应该将“account”类的实例替换为“accountxtra”。 您可以尝试的另一个想法是在accountXtra()中创建一个构造函数,它使用类型为“account”的参数,并将所有信息复制到新实例中。不完全有效,但它会达到你想要的效果。
|
|
|
4
0
您可能希望将其抽象为具有所有公共属性的公共抽象类:
那么,您的额外帐户和一个新的“基本”帐户是从这个通用帐户类派生出来的吗?
这允许您拥有一个集合,比如:列出所有帐户;在这里您可以操作公共属性。同时维护专用类的实例。 |
|
|
5
0
这是对先前答案的评论,但我想这太长了。
拥有一个带有一个父类实例并从中复制数据的构造函数的子类是一个相当普遍的标准。一种方法是创建一个受保护的函数来完成这项工作,在本例中,我们将调用它assign,从而最大限度地减少这一问题在多个继承级别和其他类中可能引起的头痛。我们有三个班,
现在我们定义员工:
然后,我们对manager使用相同的示例:
所以
请注意,这个模式创建了一个新对象,该对象与旧对象具有相同的数据。旧对象仍然存在,现有引用不会指向新对象。不允许实际更改对象的类型。 |
|
Fernando Chu · 一个变量有多个可能的类?[关闭] 1 年前 |
|
|
Amaterastis · 基类接受子类和内部子类的模板参数 1 年前 |
|
|
Rishab Negi · 这个关键字在抽象类中是如何工作的 1 年前 |
|
|
dEmigOd · 类层次结构中的运算符重载解析 1 年前 |
|
|
TableTopRug · 如何从Kotlin中的密封类继承? 1 年前 |
|
|
hasdrubal · 抽象基类函数指针python 1 年前 |
|
|
Josh · 通过反思访问孩子的财产 1 年前 |