В этой статье описывается использование полиморфизма в Java с примерами. Поделитесь этим со всеми для справки. Конкретный анализ заключается в следующем:
Полиморфизм — основная особенность объектно-ориентированных языков программирования. Инкапсуляция и наследование относительно просты, поэтому я сделаю здесь лишь небольшое замечание о полиморфизме. . .
1. Что такое полиморфизм?
Полиморфизм означает, что объект может иметь несколько характеристик и может проявлять разные состояния при определенных обстоятельствах, реагируя на разные свойства и методы. В Java полиморфная реализация означает использование одного и того же интерфейса реализации для реализации разных экземпляров объектов.
Например, мы определяем класс Parent, затем определяем метод getName() для возврата строки, определяем метод-член doSomething(Parent obj), формальным параметром которого является тип Parent, и вызываем obj.getName() в этом методе. Затем определите два класса A и B, оба из которых наследуются от класса Parent, и переопределите метод getName() в подклассе. Наконец, создайте объект objP класса Parent в основном методе, вызовите метод objP.doSomething() и передайте ему ссылки класса A и класса B. Наблюдайте за результатом.
class Parent { Private String name = "parent"; public String getName() { return this.name } public void doSomething(Parent obj) { //Выходное имя класса System.out.println(obj.getName() }; public static void main(String[] args) { Parent objP = new Parent(); // objP.doSomething(new A()); При передаче ссылки на A вызывается метод getName класса A objP.doSomething(new B()); // При передаче ссылки на B вызывается метод getName класса B} } class A расширяет Parent {); Private String name = "class A"; //@Rewrite метод getName() public String getName() { return this.name } } class B расширяет Parent { Private String name = "class B"; () Метод public String getName() { вернуть это.имя } }
Видно, что метод doSomething родительского класса полиморфно вызывает метод getName переданного нами объекта, а не метод getName самого родительского класса.
2. Интерфейс на Java
Интерфейс в Java — это объявление ряда методов. Интерфейс имеет только характеристики методов, но не реализацию методов. Эти методы могут быть реализованы откуда угодно через определенные классы. В Java ключевое слово интерфейс используется для объявления интерфейса.
Примеры полиморфизма с использованием интерфейсов:
Interface Name { //Только объявляем, но не реализуем public String getName(); } class A реализует Name { Private String name = "class A" //Реализуем метод getName public String getName() { return name } } class B; реализует Name {private String name = "class B"; //Реализуем метод getName public String getName() { return name } public static void main(String[] args) { Name obj = new A(); System.out.println(obj.getName());
Как видите, напечатано имя класса A, class A.
PS: Если класс не реализует все методы интерфейса, то класс необходимо объявить абстрактным. Абстрактный класс не позволяет создавать экземпляры объектов.
Я надеюсь, что эта статья будет полезна каждому, кто занимается программированием на Java.