I have a class named Item
which acts as an abstract class, but is not defined as one. This class has a MaxPerStack
property:
public class Item
{
public short MaxPerStack
{
get
{
return this.Data.MaxPerStack;
}
}
}
I also have a class named Equip
which derives from the Item
class and also has a property named MaxPerStack
which is declared as new
:
public class Equip : Item
{
public new short MaxPerStack
{
get
{
return 1;
}
}
}
I have the following method called Add
, which uses the MaxPerStack
property of item
:
public void Add(Item item)
{
Console.WriteLine("Stack: {0}.", item.MaxPerStack);
}
When I do:
Add(new Equip());
It goes to the MaxPerStack
property of Item
rather to the Equip
one.
Why's that happening?