Я изучаю 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();
Заранее спасибо!