당신은 displayMethod (문자열 msg)를 변경하는 경우Method (문자열 msg, 문자열 msg2), 프로그램은 @override 오류를 제공합니다. 당신이 @override 프로그램을 언급하는 경우 SubClass의 디스플레이에 따라 오류및 인쇄를 제공하지 않습니다. 메서드 오버로드는 응집력 있는 클래스 API를 정의할 수 있는 강력한 메커니즘입니다. 메서드 오버로드가 중요한 기능인 이유를 더 잘 이해하려면 간단한 예제를 살펴보겠습니다. Super 앞에 오는 이름(이 예에서 FlyCar 또는 OperateCar)은 호출된 메서드의 기본값을 정의하거나 상속하는 직접 수퍼인터페이스를 참조해야 합니다. 이 형태의 메서드 호출은 동일한 시그니처를 가진 기본 메서드를 포함하는 여러 구현된 인터페이스 간의 차별화에 국한되지 않습니다. 수퍼 키워드를 사용하여 클래스와 인터페이스 모두에서 기본 메서드를 호출할 수 있습니다. 하위 클래스(자식 클래스)가 부모 클래스에서 선언된 메서드와 동일한 메서드를 사용하는 경우 Java에서 재정의하는 메서드라고 합니다. 이 가이드에서는 @Override 개의 항명이 Java에서 어떻게 작동하는지 설명했습니다. 메서드를 재정의할 때 수퍼클래스에서 메서드를 재정의할 컴파일러를 지시하는 @Override 추가를 사용할 수 있습니다.

어떤 이유로 컴파일러가 메서드가 수퍼 클래스 중 하나에 존재하지 않는 것을 감지하면 오류가 생성됩니다. @Override 대한 자세한 내용은 주석을 참조하십시오. 이 오버로드 예제에서는 서로 다른 매개 변수를 사용하여 두 개의 나무 껍질 메서드를 호출할 수 있습니다. 컴파일러는 메서드 시그니처(메서드 이름 및 메서드 매개 변수 목록)가 다르기 때문에 서로 다르다는 것을 알고 있습니다. 지난 주에 Java 메서드 숨기기 및 재정의를 작성했습니다 : Java에서 정적 메서드를 재정의하십시오. 위의 예제에서는 자식 클래스에서 메서드 displaymethod()를 재정의합니다. @Override 주석을 사용하지 않더라도 프로그램은 아무런 문제없이 잘 실행될 것입니다. 그것에 대해 설명 할 수 있습니다 : 이것은 시그니처를 displayMethod (String msg, String msg2)로 변경할 때 부모 클래스 메서드를 재정의하지 않기 때문입니다. @override 자식 클래스에서 메서드를 재정의할 때 사용됩니다. 주석을 제거하면 displayMethod(String msg, String msg2) 메서드가 자식 클래스의 일반(재정의되지 않음) 메서드로 처리되고 오류가 발생하지 않습니다. 한마디로 “재정의하지 않는 메서드에 @override 개의 추가를 사용하면 오류가 발생합니다.”. 자세한 내용은 이 가이드: Java에서 재정의를 참조하십시오.

저자는 맞습니다. 함수를 재정의하면 해당 클래스에서 사용할 수 없습니다. 그런 의미에서 2개의 별도 함수를 수행해야 하기 때문에 다형성이 아닙니다. 함수 재정의를 사용하는 경우에는 그렇지 않습니다. 좋은 기사! Java에서 매우 중요한 개념인 Java에서 재정의와 오버로드의 차이를 잘 수행했습니다. 나는 또한 자바 개발자갑자기 자바 재정의 개념에 혼란스러워했다. 기사 전반에 걸쳐 개념을 매우 명확하고 쉽게 이해할 수 있도록 했습니다. 자바에서 재정의 및 오버로드에 대한 관련 이미지 및 설명과 함께 자세한 정보를 가지고있다.

이 멋진 기사주셔서 감사합니다. 이 예제에서는 하위 클래스에서 실행 메서드를 부모 클래스에 정의된 대로 정의했지만 몇 가지 특정 구현이 있습니다.