【发布时间】:2014-09-22 15:29:56
【问题描述】:
假设我有几个课程:
public class ParentClass
{
<common functionality>
...
}
public class ChildClass : ParentClass
{
<additional functionality>
...
}
在我的代码中,我同时使用了ParentClass 和ChildClass 类型的对象——有时我不需要ChildClass 上的额外功能,有时我需要。 (实际上涉及到几代类,但让我们保持简单。)有没有办法做到这一点,如果我这样声明一个对象:
public ParentClass thing;
我将无法稍后将thing 定义为:
thing = new ChildClass();
我希望多态性达到ChildClass 继承ParentClass 的所有功能的程度,但我不希望在定义对象时能够使用更具体的类。我可以以某种方式禁止这样做吗?当然,我可以将ParentClass 抽象化,但是我将无法拥有ParentClass 类型的对象,而且我有时确实需要它们。
【问题讨论】:
标签: c# class polymorphism