Как использовать в родительских методах поля и свойства наследуемого класса?
Имеются два класса (родительский дочерний соответственно):
class Unit
{
protected string UnitChar = ".";
public string Char
{
get => UnitChar;
}
public void Print() => Console.WriteLine(Char);
}
class Pawn : Unit
{
protected new string UnitChar = "P";
}
В наследуемом классе я переопределяю поле UnitChar
, присваивая ему строку "P"
.
По моей задумке, метод и свойство, которые наследует Pawn
, при вызове из его экземпляра должны использовать его поля и свойства, которые опираются на переопределенное поле.
Иными словами, наследуемый метод Print
в классе Pawn
должен использовать свойство Char
, которое, в свою очередь возвращает переопределенный UnitChar
.
Однако следующий код:
Unit U = new();
Pawn P = new();
U.Print();
P.Print();
Console.WriteLine($"{U.Char} {P.Char}");
Выводит:
.
.
. .
Хотя ожидается:
.
P
. P