교재 208쪽에서 인터페이스가 없다면 별도의 불린형 필드를 둬서 개발자가 명시해야 한다고 말씀하셔서
직접 구현해보았는데... 오류가 발생했습니다ㅠ
처리되지 않은 예외: System.InvalidCastException: 'ConsoleApp50.Computer' 형식 개체를 'ConsoleApp50.Person' 형식으로 캐스팅할 수 없습니다.
모든 개체의 부모는 object로 알고 있는데 캐스팅 불가라고 하니까
어떻게 수정해야 될 지 모르겠습니다....
namespace ConsoleApp50
{
class Computer
{
public bool IsOverloaded = false;
}
class Person
{
string name;
public bool IsOverloaded = true;
public Person(string name)
{
this.name = name;
}
public override string ToString()
{
return "Person: " + this.name;
}
}
class Program
{
private static void DisplayObject(object obj)
{
if(((Computer)obj).IsOverloaded)
{
}
if (((Person)obj).IsOverloaded)
{
Console.WriteLine(obj.ToString());
}
}
static void Main(string[] args)
{
DisplayObject(new Computer());
DisplayObject(new Person("홍길동"));
}
}
}
타인의 코드를 보면 이해가 되는데 막상 직접 짜려고 하면 어렵네요...
[최초 등록일: ]
[최종 수정일: 1/15/2021]