Question: I have a base class with

```
     public abstract class BaseClass
    {
     ICollection<int> Numbers {get;set;}
    }

```

IS there a way of getting the below result?

```
    public abstract class SubClass : BaseClass
    {
     override ObservableCollection<int> Numbers {get;set;}
    }

```

So the subclass has an observablecollection or is there a design pattern I could implement?

Answer: 
Generics can help you achieve similar behavior:

```
public abstract class BaseClass<T> where T : ICollection<int>
{
    public T Numbers { get; set; }
}

public abstract class SubClass : BaseClass<ObservableCollection<int>>
{

}

```
You can try like below adding "new" keyword

```
public abstract class BaseClass
    {
        public virtual ICollection<int> Numbers { get; set; }
    }

    public abstract class SubClass : BaseClass
    {
        public new ObservableCollection<int> Numbers { get; set; }
    }

```