메소드를 오버로드하는 방법과 메소드를 오버라이드하는 방법을 알고 있습니다. 그러나 동시에 오버로드하여 메서드를 재정의 할 수 있습니까? 그렇다면 예를 들어주십시오.Java에서 오버로드되고 오버라이드 됨
6
A
답변
13
오버로드 및 재정의는 보완적인 작업이며 오버로드는 동일한 메서드 이름이지만 다른 매개 변수를 의미하며 재정의는 동일한 매개 변수를 사용하는 하위 클래스에서 동일한 메서드 이름을 의미합니다. 오버로드가 다른 매개 변수를 포함하기 때문에 동시에 오버로드 및 오버라이드가 동시에 발생할 수 없습니다.
예 :
class A {
public void doSth() { /// }
}
class B extends A {
public void doSth() { /* method overriden */ }
public void doSth(String b) { /* method overloaded */ }
}
건배!
5
과부하 및 과부하는 단지 추상화입니다. 오버로딩이란 컴파일러가 호출 할 함수를 지정하기 위해 매개 변수의 유형 및 개수와 함께 이름을 사용한다는 것을 의미합니다. 실제로 메소드 오버로딩은 컴파일러가 함수를 찾기 위해 사용하는 키가 이름과 매개 변수 목록의 조합이므로 다른 이름을 지정하는 것과 다르지 않습니다.
오버라이드는 컴파일러가 super
키워드로 오버라이드 된 기능을 처리 할 수 있다는 점을 제외하면 동일한 원칙입니다.
오버로드 된 함수를 재정의 할 수 있습니까? 예, 오버로드 된 메서드는 컴파일러의 관점에서 완전히 다른 메서드이기 때문에 그렇습니다.
1
의미에 따라 다릅니다. 메서드는 수퍼 클래스에서 오버로드 된 메서드에 대한 재정의 일 수 있습니다. 다른 메서드를 사용하여 동시에 재정의하는 메서드를 오버로드 할 수 있습니다.
그러나 new 오버로드와 재정의 중 하나의 방법을 사용할 수 없습니다. 메서드를 재정의하려면 동일한 서명을 가진 다른 메서드가 이미 수퍼 클래스에 있어야합니다. 즉이 메서드는 새 재정의가 될 수 없습니다.
관련 문제
- 1. 데이터가 해시 테이블에서 오버라이드 됨
- 2. @ Java에서 compareTo() 메소드를 오버라이드 할 수 없습니다.
- 3. pmd 룰 오버라이드 가능한 메소드가 객체 생성 중에 호출 됨
- 4. kml 파일을 사용할 때 Google지도 줌이 오버라이드 됨 2
- 5. 라이트 박스가 열릴 때 CSS 미디어 쿼리가 오버라이드 됨
- 6. Java에서 다른 클래스의 변수에 액세스하려고하면 null이 됨
- 7. Java에서 오버라이드 된 getActions의 컨텍스트 메뉴에서 하위 메뉴 만들기 JHotDraw
- 8. 자바에서 getClass() 접근법을 오버라이드
- 9. 오버라이드 Silverstripe LastEdited
- 10. CheckStyle의 JavaDoc 오버라이드 방법 오버라이드 방법에 대한
- 11. 루비 믹스 오버라이드 오버라이드 방법 설명
- 12. 오버라이드 (override) 및 비 오버라이드 (override) 생성자
- 13. java.awt.Button을 오버라이드
- 14. UIScrollView 오버라이드
- 15. 오버라이드 setContentOffset
- 16. 오버라이드 (캐스트)
- 17. AutoCompleteDecorate 오버라이드
- 18. EntityDataSource 오버라이드
- 19. upload_max_filesize를 오버라이드
- 20. 제네릭 오버라이드
- 21. 오버로드 됨 == 함수가 호출되지 않습니다.
- 22. Java에서 중국어 문자 (UTF-8로 인코딩 됨)와 일치하는 패턴
- 23. IE에서 Java에서 JavaScript 함수를 호출 할 때 액세스가 거부 됨
- 24. 오버라이드 된 메서드 호출, 오버라이드 된 메서드 호출 수퍼 클래스
- 25. C#과 Java 메서드 오버라이드 오버라이드 및 가상의 사용
- 26. GXT 메소드 오버라이드 문제
- 27. subActivity 메소드 오버라이드
- 28. asp.net 인라인 오버라이드
- 29. QWidget keyPressEvent 오버라이드
- 30. Java 상속되는 문자열을 오버라이드
원하는 경우 오버로드 된 메서드를 재정의 할 수 있습니다. 그것은 가능한 한 가까이 있습니다. – user845279
이 경우 메서드의 바인딩 (정적 또는 동적)을 담당합니다. 재정의 또는 과부하? – zgulser