【发布时间】:2013-08-16 20:30:11
【问题描述】:
我无法从派生类访问简单字段,那又如何 是在字段的情况下使用多态性。如果我必须向下转换到 ResponseMBP 以获取 Name 属性,那么我的客户需要了解派生类。
那么多态性只对方法有效吗?
public abstract class Response
{
}
public class ResponseMbp : Response
{
public string Name = "My Name";
}
class Program
{
static void Main(string[] args)
{
Response r = new ResponseMbp();
Console.Write(r.Name);
}
}
【问题讨论】:
-
您并没有向 ResponseMBP 转型,而是向它转型。如果你有一个基类引用,你当然不能访问派生类的成员。
-
@Michael,感谢您的回复。您确定要“向上转型”吗?如果我必须使用 ((ResponseMBP)Response).Name 这意味着它正在向下转换,不是吗?看看这个stackoverflow.com/questions/1524197/downcast-and-upcast
标签: c# oop inheritance polymorphism ooad