Законен ли полиморфизм с интерфейсом так же, как законен полиморфизм с абстрактным классом? - PullRequest
0 голосов
/ 08 декабря 2018

Например:

Допустим, у вас есть абстрактный класс с именем Animal и неабстрактный класс с именем Dog.Это законно:

Animal dog = new Dog();

Но если у вас есть интерфейс под названием Car и обычный класс под названием Toyota, то это будет законно?

Car car = new Toyota();

Спасибо!

Ответы [ 2 ]

0 голосов
/ 08 декабря 2018

Да Это законно.

В вашем случае Dog должен расширять Animal:

abstract class Animal {}

class Dog extends Animal {}

То же самое верно для интерфейса (который является абстрактным по определению) и классакоторый реализует это:

interface Car {}

class Toyota implements Car {}
0 голосов
/ 08 декабря 2018

Да, конечно, это законно, пока Toyota реализует автомобиль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...