Is it better to code to SuperType or Interface?
===

What is considered general best practice:

Reference via the super type?

    public class BirdFeeder{
        
        public Feed(Bird bird){...}
        
    }

Or via a Interface

    public class BirdFeeder{
        
        public Feed(IBird iBird){...}
        
    }

Personally I prefer interfaces but I'm not quite sure why, to me they just feel 'cleaner'.  I would like a better understanding of why I would choose one over another.

Thanks