Java3의 다형성에 대한 생각
사람들은 종종 객체 지향적으로 표시되는 방법 과부하와 같은 Java의 다른 객체 지향적 인 특징에 의해 혼란스러워집니다. 속지 마십시오 : 늦게 구속력이 없다면 다형성이 아닙니다.
텍스트로 번역
사람들은 메소드 과부하와 같은 Java의 다른 비 객체 지향적 특징에 의해 항상 혼란스러워집니다. 때로는 객체 지향으로 존재합니다. 제발 바보가되지 마세요. 늦은 바인딩이 없다면 (즉, 런타임 동안 동적 바인딩) 다형성이 아닙니다.
따라서이 구절이 표현하고자하는 것은 다형성이 동적 결합을 가져야한다는 것입니다. 그렇지 않으면 다형성이 아니며, 방법 과부하는 다형성이 아니기 때문에 (방법 과부하가 편집 기간 동안 결정되기 때문에, 후기 기간, 즉 런타임 기간).
이 세 가지 조건이 충족되면 1. 상속 2가 있습니다. 2가 있습니다.
<span style = "font-size : 14px;"> 예 : 공개 클래스 주소 {private String name; public address (string name) {this.name = name;} public string getName () {return name;} public void setName (문자열 이름) {this.name = 이름;}} 공개 클래스 클래스 {tovol class go (주소 주소)}; 차량 확장 {@overridepublic void go (주소 주소) {system.out.println ( "car to" + " + address.getname ());}} 평면도는 기본 클래스를 구현합니다 : 공개 클래스 평면은 차량 확장 {@overridevoid go (주소 주소) {system.out.println (" + 주소로 "}}}}}}}}}}}}} v) {/// 다형성, 부모 클래스 참조는 서브 클래스 객체를 가리키며 실제 전송은 추상 클래스 차량 또는 구현 클래스의 서브 클래스이며 컴파일러는 특정 구현 클래스를 기반으로 구현 방법을 찾습니다. v.go (새 주소 ( "hangzhou (Abstract)"); ///이 메소드는 특정 구현에서 다시 작성됩니다.} test : public static void main (String [] args) {driver d = new driver (); d.drive (new plane ()); // 실제로 평면 객체 인 경우 컴파일러는 비행기에서 GO의 구현, d.drive (new car ())를 찾습니다. // 실제로 자동차 객체 인 경우 컴파일러는 비행기에서 GO 구현을 찾습니다.} 출력 결과 : 비행기에서 Hangzhou (Abstract) 자동차 to Hangzhou (Abstract) </span>다형성 : 물과 같은 것과 같은 것과 같은 다른 상태를 말합니다. 물은 세 가지 상태를 가질 수 있습니다.
가스, 액체 및 고형물. 그런 다음 Java의 다형성은 또한이 의미로 이해 될 수 있습니다.
부모 객체를 하나 이상의 자녀 객체와 동일하도록 설정하는 기술,
예를 들어 부모 = 자녀;
다형성은 동일한 클래스 (부모 클래스)를 사용하여 다른 클래스의 객체를 참조 할 수 있습니다.
참조 된 객체에 따라 다른 방식으로 동일한 작업을 수행하십시오.
다형성 구현에는 과부하 및 덮어 쓰기의 두 가지 방법이 포함됩니다
예를 들어 : 동물 A = 새로운 호랑이 (); 이것은 오래된 주제입니다, 하하 ...
부모 클래스 참조는 어린이 클래스 객체를 가리 킵니다. 동물 클래스에는 Eat () 방법이 포함되어 있으며 Tiger 클래스는
동물 수업, 서브 클래스가 부모 클래스의 eat () 메소드를 다시 작성하면 호출되면 어린이 수업을 따를 수 있습니다.
공식적인 호출은 본질적으로 부모 클래스 방법이지만, 서브 클래스를 다시 작성한 후에는 다른 방법이됩니다. 이는 다형성입니다.
위의 것은 Java 다형성 구현의 측면이 주로 반영되는 것에 대한 간단한 논의입니다. 모든 사람에게 도움이되기를 바랍니다. Wulin.com 더 지원 ~