Используя это в качестве примера:Разъяснение о переопределение в Java
class Animal{
public void move(){
System.out.println("Animals can move");
}
}
class Dog extends Animal{
public void move(){
System.out.println("Dogs can walk and run");
}
}
public class TestDog{
public static void main(String args[]){
Animal a = new Animal(); // Animal reference and object
Animal b = new Dog(); // Animal reference but Dog object
a.move();// runs the method in Animal class
b.move();//Runs the method in Dog class
}
}
правильно ли это здесь, чтобы сказать после вызова b.move() метод «движение() под класса Dog» была переопределена «Переместить() под классом Animal ", поскольку объект Dog имеет приоритет при вызове того же метода при ссылке на тип Animal?
Ive заметил, что многие сайты не объясняют это, скорее они просто выкидывают примеры, не проговаривая материал по строкам. Просто хочу очистить мою терминологическую путаницу.
Замечание, возможно ли иметь объект Dog, но вызвать move(), который находится под классом Animal? например, что-то вроде:
Dog doggy = new Dog();
doggy.move()
>>>
Animals can move
>>>
Возможно ли это? ((Animal) doggy) .move() выполнить это?
Кроме того, использование @Override нотация, предотвращает ошибки , такие как орфографические имена методов в подклассах. – jam