Take this as example
interface IFlyable
{
    void Fly();
}
class Bird : IFlyable
{
    public void Fly() { }
}
class Plane : IFlyable
{
    public void Fly() { }
}
List<IFlyable> things = GetBirdInstancesAndPlaneInstancesMixed();
foreach(IFlyable item in things)
{
   item.Fly();
}
Although Bird and Plane share no common base class other than Object, we can deal with them as a group in our software by utilising the same interface because they have the same "feature": Fly