Для всех тех, кто не знаком с Greenfoot, ниже контекст: -Наследование связанных запросов относительно Greenfoot
Greenfoot является инструментом Java обучения, используя анимацию. В этом инструменте есть предопределенный класс под названием «Актер» с некоторыми предопределенными методами. Мы можем добавлять объекты, создавая подклассы этого класса, такие как «Автомобиль», «Грузовик» и т. Д.
Я создал подклассы для «Актера» под названием «Автомобиль» и «Грузовик». Я назвал предопределенный метод в классе «Актер» под названием «move (некоторый аргумент, обозначающий скорость движения)», из метода в классе «Car»: move(5);
.
Мой вопрос заключается в следующем: почему мне не нужно упоминать объект класса «Автомобиль» здесь, как в: c1.move(5);
где «c1» - это объект класса «Автомобиль»? Я могу понять, что, поскольку я не определил метод «move» в классе «Car», он будет напрямую вызывать и реализовывать предопределенный метод в классе «Актер», но как он может знать, что я имел в виду «Автомобиль» 'объект класса здесь? Это может быть объект класса «Грузовик»! Это потому, что я вызываю метод из метода класса «Автомобиль», это выводит это?
Если да, то это общее правило в java или только конкретная реализация Greenfoot?
Где вы делаете вызов метода move()? –
Кроме того, если у вас нет метода move(), определенного в классе Car или Truck, это означает, что для них обоих действует одна и та же функция move(), определенная внутри Actor (которая унаследована классами Car и Truck). Если вам нужна отдельная реализация для любого из двух классов, вы должны определить свой собственный метод move() в Car/Truck соответственно. –
@ AnkitKhettry Из метода в классе Car. – amsquareb