Все мы знаем, что «млекопитающие имеют множество видов звуков», таких как: «рев», «вой», «гав», «мяу» и т. д. Это полиморфизмы звуков.
Поэтому, когда класс имеет много подклассов, и все эти подклассы переопределяют метод в родительском классе, когда мы помещаем ссылку на объект, созданный подклассом, в объект родительского класса, мы получаем объект Upcast объекта. В настоящее время объект upcast может иметь полиморфизм при вызове этого метода, поскольку разные подклассы могут вести себя по-разному при переопределении методов родительского класса.
Например: когда преобразованный с повышением уровня объект класса собаки вызывает метод «лай», создается поведение «гав», а когда преобразованный с повышением уровня объект класса кошки вызывает метод «лай», создается поведение «мяу» и так далее.
Полиморфизм означает, что когда метод родительского класса переопределяется его подклассом, каждый из них может производить свое собственное функциональное поведение.
Например:
класс Animal {voidcry(){}} класс Dog расширяет животное {voidcry(){System.out.println(wangwang);}} класс Cat расширяет животное {voidcry(){System.out.println(miaomiao);}} publicclassMain {publicstaticvoidmain(Stringargs[]){животное;животное=новая собака();animal.cry();животное=новый кот();animal.cry();}}
Результаты бега следующие:
Ванванмяомяо