【发布时间】:2016-12-24 15:46:09
【问题描述】:
我想知道如果你想从原始基类继承一个方法,而不是你的直接前任,是否可以跳过继承三中的一个类。
例如,假设我有三个类,GrandParent、Parent(继承自 GrandParent)和 Child(继承自 Parent)。 GrandParent 有一个 Adresse 方法,而 Parent 有一个 Adresse 方法覆盖它。但是,出于某种原因,我希望 Child 具有与 GrandParent 相同的 Adresse 方法,而不是 Parent。如果我遇到这种情况,这可能还是我搞砸了?
下面的示例代码是用 C# 编写的
class GrandParent
{
private String Adresse;
public GrandParent()
{
}
public virtual void setAdress(String Adresse)
{
this.Adresse = Adresse;
}
public String getAdress()
{
return Adresse;
}
}
class Parent : GrandParent
{
public Parent()
:base()
{
}
public override void setAdress(String Adresse)
{
base.setAdress("Home: " + Adresse);
}
}
class Child : Parent
{
public Child()
: base()
{
}
}
【问题讨论】:
-
从语法来看,问题似乎是针对 C++ 的。你能确认和更新吗?这也将帮助其他试图回答您的问题的人。另请查看this 问题是否对您有帮助。
-
这就是我在 Parent 中所做的:示例中的 base 。但是,如果我在 Child 中执行此操作,我仍然会在 Parent 中调用 Adresse 方法,因为 parent 是 Child 的直接基础
-
看看这个答案(以及这个问题中的其他答案)是否有帮助:stackoverflow.com/a/32562464/5311735
标签: c# inheritance