【发布时间】:2020-06-03 07:03:31
【问题描述】:
假设我们有一个类ProductA,它继承了另一个名为Product 的类。什么意思
Product product = new ProductA();
那和有什么区别
ProductA product = new ProductA();
【问题讨论】:
-
在你的具体例子中 - 没有区别。除了后面方法上的“新”修饰符将覆盖第二个示例中的行为,但你永远不应该使用它,这只是遗留世界的另一个垃圾。
-
那么这两种语法在什么情况下会有区别呢?
-
@eocron 我们正在讨论实例的构造并将该实例分配给变量。
-
这远远超出了构造函数问题,@SirRufo。一个基类和它的后代可以是完全不同的东西(例如硬件和打印机)。
-
@palapapa,如果你把这个对象发送给一个方法,比如 public void DoSomething(ProductA productA) { ...} 那么第一个对象会产生编译时错误,而第二个不会.
标签: c# oop constructor