Прямой пример из Java Documentation:
public class Animal {
public static void testClassMethod() {
System.out.println("The class" + " method in Animal.");
}
public void testInstanceMethod() {
System.out.println("The instance " + " method in Animal.");
}
}
public class Cat extends Animal {
public static void testClassMethod() {
System.out.println("The class method" + " in Cat.");
}
public void testInstanceMethod() {
System.out.println("The instance method" + " in Cat.");
}
public static void main(String[] args) {
Cat myCat = new Cat();
Animal myAnimal = myCat;
Animal.testClassMethod();
myAnimal.testInstanceMethod();
}
}
Поэтому я использовал этот пример, как, посмотрите на сценарий с вашей реальной ситуации. A Animal
может иметь определенные общие функции. Но Cat
будет иметь некоторые функции, отличные от общего Animal
, но некоторые функции, которые являются улучшением по сравнению с общими функциями Animal
. Таким образом, Cat
, похоже, переопределяет (будет содержать переопределяющие методы) функции Animal
.
Другой простой пример, если вас интересуют автомобили. Скажем, есть Car
. Он будет иметь метод acceleration
. Но Ferrari
, очевидно, будет лучше acceleration
, чем Car
. Но, Ferrari
является Car
. Таким образом, Ferrari
переопределяет метод в Car
. SO, метод переопределения находится в подклассе, а метод overriden - в базовом классе.
Итак, вы сейчас поняли? В подклассах присутствуют методы переопределения. Но методы, которые переопределены, присутствуют в базовом классе.
Не забудьте принять один ответ как правильный! :-) –