이 기사는 주로 과부하, 재 작성, 다형성, 정적 결합 및 Java의 동적 결합에 관한 내용과 관련된 내용을 연구합니다.
오버로드 , 영어 이름은 과부하입니다. 즉, 동일한 이름을 가진 하나 이상의 메소드가 클래스에 정의됩니다. 이러한 메소드의 매개 변수, 매개 변수 유형 및 순서의 수는 동일 할 수 없습니다. 리턴 유형은 동일하거나 다를 수 있습니다.
public class tstaticoverload {static int height; tstaticoverload () {System.out.println ( "묘목 심기"); 높이 = 0;} tstaticOverload (int initialHeight) {height = initialHeight; System.out.println ( " + height +"feet kall ";} {systation void void void void void void void void void void void void void void void void void. 높이 + "피트 키");} 정적 무효 정보 (문자열 s) {System.out.println (s + ": 트리는" + height + "feet kall");}} public class testso {public static void main (string [] args) {tstaticoverload t = new tstaticoverload (5); tstaticoverload.info (); tstaticoverload.info ( "오버로드 메소드"); new tstaticoverload ();}}외부 : 키가 5 피트 인 새 나무를 만드는 것은 5 피트 높이의 키가 큰 과부하 방법 : 나무는 5 피트 높이가 묘목을 심습니다.
다시 작성, 영어 이름은 재정의이므로 상속의 경우 동일한 이름, 동일한 리턴 유형 또는 호환 유형을 갖는 서브 클래스에 정의 된 메소드 및 기본 클래스의 메소드와 동일한 매개 변수가 정의됨을 의미합니다. 이것을 서브 클래스 재 작성 기본 클래스 메소드라고합니다. 이것은 다형성을 구현하는 데 필요한 단계입니다.
다형성 : 다형성은 여러 가지 다른 증상이나 형태를 갖는 동일한 행동의 능력입니다.
public class stanticupper {public static string staticget () {return "base staticget ()";} public String ynamicget () {return "base dynamicget ()";}} class stanticsub extends stanticsupper {pub static string staticget () {return "sub staticget ()";}} {return "sub dynamicget (}) {return" "}}. staticMub는 staticsupper {pub static string staticget () {return "mub staticget ()";} public String dynamicget () {return "mub dynamicget ()";}}을 확장합니다. public class staticpolymorphism {public static void main (String [] args) {staticsupper sup1 = new staticsub (); System.out.println (sup1.staticget ()); System.out.println (sup1.dynamicget ()); STANTICSUPPER SUP2 = 새로운 staticMub (); System.out.println (sup2.staticget ()); System.out.println (sup2.dynamicget ()); }}Out : Base staticget () sub dynamicget () base staticget () mub dynamicget ()
프로그램 바인딩의 개념 :
바인딩은 메소드 호출과 메소드가있는 클래스 (메소드 본문)의 연관성을 나타냅니다. Java의 경우, 결합은 정적 결합 및 동적 결합으로 나뉩니다. 또는 초기 바인딩 및 늦은 바인딩이라고합니다.
정적 바인딩 :
이 방법은 프로그램이 실행되기 전에 바인딩되었으며 컴파일러 또는 기타 연결 프로그램에 의해 구현됩니다. 예 : C.
Java의 경우 프로그램 컴파일 기간 동안 바인딩으로 이해할 수 있습니다. 자바의 유일한 방법은 초기 바인딩 인 최종, 정적, 개인 및 생성자 방법이라는 것이 특히 분명합니다.
동적 바인딩 :
나중에 바인딩 : 동적 바인딩은 런타임이 특정 객체의 유형에 따라 바인딩 될 때까지 컴파일 단계에서 어떤 메소드를 호출 해야하는지 알지 못하는 컴파일러를 나타냅니다.
언어가 늦은 바인딩을 구현하는 경우 작동 중에 물체의 유형을 결정하고 적절한 방법을 별도로 호출하는 메커니즘을 제공해야합니다. 다시 말해, 컴파일러는 여전히 현재 객체 유형을 알지 못하지만 방법 호출 메커니즘은 자체적으로 조사하고 올바른 메소드 본문을 찾을 수 있습니다. 언어마다 늦은 바인딩을 구현하는 방법이 다릅니다. 그러나 우리는 적어도 이런 식으로 생각할 수 있습니다. 모두 객체에 특정 유형의 정보를 설치해야합니다.
메소드 과부하에는 정적 메소드 과부하 및 일반 메소드 오버로드가 포함됩니다. 정적 메소드 과부하는 정적 바인딩이며 메소드 호출은 다음과 같습니다. 클래스 이름입니다. 방법. 일반 메소드 과부하는 동적 바인딩이며 메소드 호출은 다음과 같습니다. 인스턴스 객체 참조. 방법. 생성자는 과부하 될 수 있지만 다시 작성할 수 없습니다.
정적 방법을 다시 작성할 수 있지만 다형성 효과는 달성되지 않습니다.
요약
위의 것은 Java의 과부하, 재 작성, 다형성, 정적 결합 및 동적 결합에 대한이 기사의 간단한 논의에 관한 모든 것입니다. 모든 사람에게 도움이되기를 바랍니다. 관심있는 친구는이 사이트의 다른 관련 주제를 계속 참조 할 수 있습니다. 단점이 있으면 메시지를 남겨 두십시오. 이 사이트를 지원해 주신 친구들에게 감사드립니다!