c# - 使用父对象创建子对象

标签 c# inheritance

假设我有这些类(class):

Class A {};
Class B : A {} ;

以及一个返回A的函数:

 public A read_an_A();

由于 BA 的子级,我希望能够从以下意义上读取它的 A 属性:

B b = new B ( read_an_A() );

(假设使用默认复制构造函数)

或者可能是这样的:

B b = (B) read_an_A ();

以上所有内容显然都被破坏了,实现这一目标的正确方法是什么?

最佳答案

一种方法是添加 B 的构造函数,该构造函数接受 A,并从中获取相关部分:

public B(A a) {
    this.x = a.x;
    this.y = a.y;
}

您的 B 级人员最清楚该采取什么措施,因此这种方法也相当干净。它可以让你写

B b = new B(read_an_A());

就像您在问题中建议的那样。当然,B 很可能也需要其他构造函数。

关于c# - 使用父对象创建子对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19210159/

相关文章:

c# - 线程是一个windows概念吗?

c# - ASP.Net MVC Linq to Sql 如何处理空日期时间

java - java中的动态方法绑定(bind) - 为什么这个方法?

c# - 如何在数字前添加货币符号?

c# - 转换 List<T> 中的 IEnumerable

Python多重继承和MRO

c++ - 将函数作为参数从派生类传递给父方法

c++ - 一个类如何继承自己?

c# - 何时使用 Task.Run 而不是

java - 一个接口(interface)有两个类型参数。我可以实现两种类型相同的接口(interface),以便它们兼容吗?