【发布时间】:2014-10-08 20:08:01
【问题描述】:
我想问一个关于继承的问题。 我有两个从 AbsDoc 实现的类
public class A:AbsDoc
{
public void SomeMethodA()
{}
}
public class B:AbsDoc
{
public void SomeMethod()
{}
}
and one class to implement
public class AbsDoc
{
public void Doit(){};
public void DoDiff(){};
}
当我需要访问这样的 A 类或 B 类方法时,我遇到了错误,我该如何访问
AbsDoc temp=null;
if(param=="A)
{
temp=new A();
}
else
{
temp=new B();
}
temp.SomeMethodA();//it gets error when i try to access
【问题讨论】:
-
这会导致编译时错误,因为 SomeMethodA() 仅存在于 A 上。AbsDoc 不知道 SomeMethod 或 SomeMethodA。因此,您要么需要将其转换为正确的类型,要么在基类中定义方法并在派生类中创建实现。
-
你读过如何在 C# 中实例化新对象
-
我已经阅读了如何在 C# 中实例化新对象,请您阅读下面我的评论,如果您知道该怎么做,请回答它