У меня есть класс, который выглядит так:
public class MySuperClass
{
public void PrintValue()
{
print("SUPER Class");
}
}
У меня есть другой класс, который выглядит следующим образом:
public class MySubClass : MySuperClass
{
public void PrintSubValue()
{
print("SUB Class");
}
}
Тогда у меня есть ситуация, когда у меня есть третий класс, который выглядит следующим образом:
public class MyOtherClass
{
public MyOtherClass(MySuperClass someSubClass)
{
someSubClass.PrintSubValue();
}
}
Он не скомпилируется ... Как и следовало ожидать.
Теперь, если я поменяю MyOtherClass
на следующий:
public class MyOtherClass
{
public MyOtherClass(MySuperClass someSubClass)
{
someSubClass = (MySubClass) someSubClass;
someSubClass.PrintSubValue();
}
}
Всё равно не скомпилируется ... Этого я не ожидал.
Почему я не могу разыграть суперкласс в подклассе? И как мне обойти эту проблему?