I have used and learned only virtual methods of the base class without any knowledge of virtual properties used as
class A { public virtual ICollection<
You can have methods (often), properties, indexers or events, the virtual keyword has the same meaning : modifying the meaning (override) of the base class item. With properties, you can change the get/set accessors.