【发布时间】:2018-04-10 00:02:24
【问题描述】:
所以我有一个关于对象继承和构造函数的问题可能很幼稚。基本上,一个类有一个对象:
public class ParentClass{
protected Parent item;
访问器如下:
public Parent ItemValue
{
set
{
item = value;
}
get
{
return item;
}
}
现在我想继承类:
public class ChildClass:ParentClass
{
public new Child item;
}
现在,每当我通过继承的访问器访问Child item 时,它当然会将项目作为Parent 类而不是Child 类返回。有没有办法让它将item 作为Child 类返回而不覆盖ChildClass 中的访问器?
【问题讨论】:
-
无意冒犯,但您的条款全错了。例如,返回子类是什么意思?
-
如果您必须知道
ItemValue是Child而不是Parent,那么您的OOP 操作不正确。请说明你到底想做什么 -
希望我修好了;我的意思是我想通过
ChildClass继承访问器访问item并将其作为Child类对象返回,而不是Parent类对象 -
也许,但没有“我为什么需要”这似乎是一个奇怪的问题。例如狗类,继承自动物。为什么你想让
Dog.Speak做任何狗不会做的事情? -
您是否正在尝试做多态性,不同实现的类似方法?
标签: c# inheritance accessor