Вам необходимо использовать virtual
ключевое слово
abstract class Base
{
// use virtual keyword
public virtual int x
{
get { throw new NotImplementedException(); }
}
}
или определить абстрактное свойство:
abstract class Base
{
// use abstract keyword
public abstract int x { get; }
}
и использовать ключевое слово override
в дочернем процессе:
abstract class Derived : Base
{
// use override keyword
public override int x { get { ... } }
}
Если вы НЕ собираетесь переопределять, вы можете использовать ключевое слово new
в методе, чтобы скрыть определение родителя.
abstract class Derived : Base
{
// use override keyword
public new int x { get { ... } }
}