Почему мы используем ссылку родительского класса на экземпляр дочернего класса?

Я изучаю Java из электронных книг и т. Д., И довольно много раз я сталкивался с чем-то вроде этого:

Пример 1.

public interface TravelOptions()
{
    ...
}

public class Hovercraft implements TravelOptions
{
    ...
}

Main()
{
    TravelOptions speedy = new Hovercraft();

    ...
}

Пример 2.

public class Animal
{
    ...
}

public class Dog extends Animal
{
    ...
}

Main()
{
    Animal Husky = new Dog();

    ...
}

У меня вопрос: зачем нам присваивать ссылочную переменную другого типа, например, интерфейса или суперкласса? Разве назначение оригинальному экземпляру класса не помогает? В чем причина всего этого?

Просто чтобы быть более конкретным. Почему бы не сделать это?

Hovercraft speedy = new Hovercraft();

or

Dog husky = new Dog();

Заранее спасибо!


person Scorpiorian83    schedule 23.02.2017    source источник