파생 클래스에서 간단한 필드에 액세스 할 수 없으므로 은 필드의 경우 다형성을 사용합니다. Name 속성을 가져 오기 위해 ResponseMBP로 다운 캐스트해야한다면 클라이언트는 파생 클래스에 대해 알아야합니다.기본 클래스를 사용하여 파생 클래스 필드에 액세스 할 수 없습니다.
따라서 다형성은 메소드에서만 작동합니까?
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에 다운 캐스팅하지 않습니다. 확실히 기본 클래스 참조가 있으면 파생 클래스의 멤버에 액세스 할 수 없습니다. – alex
@Michael, 답장을 보내 주셔서 감사합니다. '업 캐스팅'에 대해 확실합니까? ((ResponseMBP) Response.) .Name을 사용하면 다운 캐스팅이라는 의미일까요? 이것 좀 봐 http://stackoverflow.com/questions/1524197/downcast-and-upcast – Ron