아래는 Java의 다형성의 확장 성을 완전히 설명하기 위해 두 가지 예를 사용합니다. 훌륭한 프로그래머로서 프로그램의 후속 개발에 매우 도움이되는 프로그램의 확장 성을 이해해야합니다.
첫 번째 예 :
컴퓨터의 마더 보드를 예로 사용하십시오. 우리가 익숙한 컴퓨터의 마더 보드에는 많은 모듈, 네트워크 카드 및 사운드 카드가 있습니까? 이러한 기능을 사용하려면 마더 보드를 사용하여 실행 한 다음 네트워크 카드 및 사운드 카드에 전원을 공급할 수 있습니다. 그러나 소프트웨어 언어에서 어떻게 이루어질 수 있습니까? 먼저 마더 보드를 실행 한 다음 사운드 카드 또는 네트워크 카드가 실행되어야합니까? 그러나 이런 식으로 확장은 높지 않으며 사운드 카드 및 네트워크 카드 실행의 작동이 반복됩니다. 또한 많은 모듈에도 이러한 기능이 있으므로 마더 보드에서 모듈을 실행할 수 있습니다. 이것은 그들 중 하나입니다. 그날 기술이 업데이트되고 새 모듈이 나타나면 모듈 객체를 작성한 다음 다시 실행해야합니까? 이것은 분명히 개발에 도움이되지 않습니다. 그러나이 문제의 경우 마더 보드 제조업체가 사운드 카드 및 네트워크 카드 제조업체와 논의한 후 PCI 인터페이스를 사용하여 미래에 마더 보드와 모듈을 연결하여 업데이트를 사용하거나 재사용 할 수없는 문제를 완전히 해결합니다. 이것은 우리 자바의 다형성에 해당합니다. 다형성을 사용하여 프로그램의 확장 성을 크게 향상시킬 수 있습니다!
특정 코드는 다음과 같습니다!
/*요구 사항 : 컴퓨터 실행 예제, 마더 보드를 기반으로 한 컴퓨터 실행. */인터페이스 pci {public void Open (); public void close ();} 클래스 메인 보드 {public void run () {System.out.println ( "메인 보드 런"); } public void usepci (pci p) // pci p = new netcard () // 인터페이스 참조가 자체 서브 클래스 개체를 가리 킵니다. {if (p! = null) {p.open (); p.close (); }}} Class Netcard는 pci {public void open () {System.out.println ( "Netcard Open"); } public void close () {System.out.println ( "NetCard Close"); 방법(); }} Class SoundCard PCI {public void Open () {System.out.println ( "SoundCard Open"); } public void close () {System.out.println ( "SoundCard Close"); }}/*클래스 메인 보드 {public void run () {System.out.println ( "메인 보드 실행"); } 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 (새로운 사운드 카드 ()); }}두 번째 예 :
일반 데이터베이스를 사용하여 다형성을 설명하십시오. 우리가 익숙한 데이터베이스는 현재 JDBC와 Hibernatelian 연결의 두 가지 데이터베이스 연결 모드가 있습니다. 데이터베이스를 사용하는 경우 연결 및 폐쇄의 두 가지 필수 작업이 있습니다. 현재 인터페이스를 사용 하여이 두 작업을 캡슐화하면 연결 모드를 사용하여 클래스 이름을 직접 변경해야합니다!
특정 코드는 다음과 같습니다!
/*요구 사항 : 데이터베이스 작업. 데이터는 : 사용자 정보입니다. 1. 데이터베이스에 연결하십시오. JDBC Hibernate2는 데이터베이스를 작동합니다. c 생성 r 읽기 U 업데이트 d delete3, 데이터베이스 연결을 닫습니다. */인터페이스 userInfodao {public void add (사용자); public void delete (user user);} class userInfobyjdbc userInofdao {public void add (user user) {1, JDBC는 데이터베이스에 연결합니다. ; 2. SQL을 사용하여 문을 추가하여 데이터를 추가하십시오. ; 3, 연결을 닫으십시오. } public void delete (사용자 사용자) {1, JDBC는 데이터베이스에 연결됩니다. ; 2. SQL ADD 문을 사용하여 데이터를 삭제하십시오. ; 3, 연결을 닫으십시오. }} class userInfobyHibernate userInfodao {public void add (user user) {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 (); // userInfoByHiberNate ui = new userInfoByHibernate (); userinfodao ui = 새로운 userInfoByHibernate (); ui.add (사용자); ui.delete (사용자); }}요약 :
1. 두 예제 모두 인터페이스를 사용하여 일부 반복적 인 작업을 추상화합니다. 다른 모듈이 이러한 작업을 직접적으로 빠르고 빠르게 사용할 수 있도록하려면 다형성 상향 변환 (이전 블로그 참조)을 직접 사용하여 부모 클래스 참조를 사용하여 호출 할 수 있습니다. 어쨌든, 기술이 업데이트되고 새로운 모듈을 사용할 수 있는지 또는 기존 모듈을 교체하든 상위 클래스 참조를 사용하여 공통 작업을 직접 호출 할 수 있습니다!
2. 인터페이스를 사용할 필요가 없으며 추상 클래스를 사용할 수도 있습니다. 그러나 인터페이스를 사용하는 것이 더욱 확장 가능합니다. 향후 업데이트되면 추상 클래스를 변경하지 않고 인터페이스를 직접 변경할 수 있습니다. 둘째, 인터페이스를 사용하면 더 많은 상속을받을 수 있습니다! 이것은 또한 편리한 장소입니다.
위의 기사 Java는 두 가지 예를 사용하여 다형성의 확장 성을 완전히 설명합니다. 이것은 내가 당신과 공유하는 모든 콘텐츠입니다. 나는 당신이 당신에게 참조를 줄 수 있기를 바랍니다. 그리고 당신이 wulin.com을 더 지원할 수 있기를 바랍니다.