오버로딩: 메서드 이름은 동일하지만 매개변수는 달라야 합니다(매개변수가 다르면 유형, 순서, 숫자가 달라질 수 있습니다). 재정의(덮어쓰기라고도 함): 하위 클래스는 상위 클래스의 메서드를 상속하고 해당 메서드를 다시 구현합니다. 3. 메서드를 다시 작성할 때 하위 클래스의 권한 수정자는 상위 클래스의 권한 수정자보다 크거나 같아야 합니다.
4. 메서드를 다시 작성할 때 하위 클래스의 반환 값 유형은 상위 클래스의 반환 값 유형보다 작거나 같아야 합니다. 5. 메서드를 다시 작성할 때 하위 클래스의 예외 유형은 다음과 같아야 합니다. 상위 클래스의 예외 유형보다 작거나 같습니다.
여기서 우리는 주로 세 번째 점을 사용하여 테스트합니다.
그림과 같이 컴파일할 때 오류가 보고됩니다.
public class a{ public static class People { public void fun(){}; } static class Student extends People { protected void fun(){ System.out.println("dfdfd"); } } public static void main(String[] args){ Student p = new Student(); p.fun(); } }
이유는 상위 클래스의 메서드에 대한 권한이 공개이고 하위 클래스가 protected로 변경되어 권한이 줄어들므로 다음보다 크거나 같을 수만 있기 때문입니다. 🎜 >