Ниже я буду использовать два примера, чтобы полностью проиллюстрировать масштабируемость полиморфного в Java. Как отличный программист, вы должны понимать масштабируемость программ, что очень способствует последующей разработке программ.
Первый пример:
Используйте материнскую плату компьютера в качестве примера. Для материнской платы компьютера, с которой мы знакомы, есть много модулей, сетевых карт и звуковых карт? Если вы хотите использовать эти функции, вы можете использовать только материнскую плату, а затем питать сетевые карты и звуковые карты. Но как это можно достичь на языке программного обеспечения? Вы должны сначала запустить материнскую плату, а затем запуск звуковой карты или сетевой карты? Но таким образом, расширение не высока, и повторяется работа запуска звуковой карты и сетевой карты. Более того, многие модули также имеют такие функции, поэтому вы можете просто запустить модуль на материнской плате. Это один из них. Если в тот день, когда технология обновляется и появляется новый модуль, вам нужно создать объект модуля, а затем запустить снова? Это, очевидно, не способствует развитию. Тем не менее, для этой проблемы, после того, как производители материнской платы обсуждают с производителями звуковой карты и сетевых карт, они будут использовать интерфейс PCI для подключения материнской платы и модуля в будущем, что полностью решает проблему невозможности использования или повторного использования обновлений. Это соответствует полиморфизму в нашей Java. Используя полиморфизм, мы можем значительно улучшить масштабируемость программы!
Конкретный код выглядит следующим образом!
/*Требования: Компьютерные примеры, компьютер, работающий на основе материнской платы. */интерфейс pci {public void open (); public void close ();} класс Mainboard {public void run () {System.out.println ("run плата"); } public void USEPCI (PCI P) // PCI P = new NetCard () // Справочные указания интерфейса на свой собственный объект подкласса. {if (p! = null) {p.open (); p.close (); }}} класс NetCard реализует pci {public void open () {System.out.println ("netcard open"); } public void close () {System.out.println ("Netcard Close"); method (); }} класс звуковая карта реализует PCI {public void open () {System.out.println ("SoundCard Open"); } public void close () {System.out.println ("SoundCard Close"); }}/*класс Mainboard {public void run () {System.out.println ("Maneboard Run"); } public void usenetcard (netcard c) {c.open (); c.close (); }} class netcard {public void open () {system.out.println ("netcard open"); } public void close () {System.out.println ("Netcard Close"); }}*/class duotaidemo5 {public static void main (string [] args) {mainboard mb = new Mainboard (); mb.run (); mb.usepci (null); mb.usepci (new netcard ()); MB.USEPCI (New SoundCard ()); }}Второй пример:
Используйте общие базы данных для объяснения полиморфизма. Что касается баз данных, с которыми мы знакомы, в настоящее время есть два режима подключения к базе данных: JDBC и Hibernatelian Connection. При использовании баз данных есть две важные операции: соединение и закрытие. В настоящее время используйте интерфейс, чтобы инкапсулировать эти две операции, и вам необходимо использовать режим подключения, чтобы напрямую изменить имя класса!
Конкретный код выглядит следующим образом!
/*Требования: операция базы данных. Данные: Информация пользователя. 1. Подключитесь к базе данных. JDBC Hibernate2 управляет базой данных. c Создать r r u update d delete3, закройте подключение к базе данных. */interface userinfodao {public void add (пользователь пользователь); public void delete (пользователь пользователя);} класс userInfobyJdbc реализует userInofdao {public void add (пользователь пользователя) {1, JDBC подключается к базе данных. ; 2. Используйте SQL, чтобы добавить оператор для добавления данных. ; 3, закройте соединение. } public void delete (пользователь пользователя) {1, JDBC подключается к базе данных. ; 2. Используйте оператор SQL Add для удаления данных. ; 3, закройте соединение. }} класс userInFobyBhiberNate реализует userInfodao {public void add (пользователь пользователя) {1, Hibernate подключается к базе данных. ; 2. Используйте SQL, чтобы добавить оператор для добавления данных. ; 3, закройте соединение. } public void delete (пользователь пользователя) {1, Hibernate подключается к базе данных. ; 2. Используйте оператор SQL Add для удаления данных. ; 3, закройте соединение. }} class dboperate {public static void main (string [] args) {// userInfobyjdbc ui = new userInfobyjdbc (); // userInFobyBiberNate ui = new userInFobyBiberNate (); UserInfodao ui = new userInfobyBhiberNate (); UI.Add (пользователь); UI.Delete (пользователь); }}Суммировать:
1. Оба примера используют интерфейсы для абстрагирования некоторых повторяющихся операций. Чтобы позволить различным модулям использовать эти операции напрямую и быстро, мы можем напрямую использовать полиморфное преобразование вверх (см. Мой предыдущий блог), а затем использовать ссылку на родительский класс, чтобы назвать его. В любом случае, независимо от того, обновляются ли технология, и новые модули доступны или существующие модули заменяются, мы можем использовать ссылку на родительский класс, чтобы напрямую вызовать их общие операции!
2. Вам не нужно использовать интерфейсы, вы также можете использовать абстрактные классы. Однако использование интерфейсов будет более масштабируемым. Если вы обновите их в будущем, вы можете напрямую изменить интерфейс, не изменяя абстрактные классы. Во -вторых, использование интерфейсов может быть унаследовано больше! Это также удобное место.
Приведенная выше статья Java использует два примера, чтобы полностью проиллюстрировать масштабируемость полиморфизмов. Это весь контент, которым я делюсь с вами. Я надеюсь, что вы можете дать вам ссылку, и я надеюсь, что вы сможете поддержать Wulin.com больше.