-
오버라이딩(overriding)과 오버로딩(overloading)이란 (java)기타 2021. 4. 2. 23:20반응형
오버라이딩(overriding)
상위 클래스의 메소드를 하위 클래스에서 상속할 수 있는데
메서드의 이름이 서로 같고, 매개변수가 같고, 반환형이 같을 경우
상위 클래스에서 상속받은 메소드를 하위 클래스에서 재정의할 수 있다.
즉 덮어쓴 자식 클래스의 기능만을 사용하겠다는 뜻이다.
아래의 예시에서 상위 클래스인 Calculator에서 avg()를 정의했지만
하위 클래스인 avgSubstractionableCalculator()에서 avg에 대해 재정의했음을 알 수 있다.
super.avg()로 대체가능하다.
class Calculator { int left, right; ... public int avg() { return ((this.left + this.right) / 2); } }
class SubstractionableCalculator extends Calculator { ... public int avg() { return ((this.left + this.right) / 2); } }
오버로딩(overloading)
같은 이름의 메서드 여러개를 가지면서 매개변수의 유형과 개수가 다르도록 하는 기술이다.
아래의 예시에서 매개변수의 개수가 다른 setOprands 메서드가 두 개 있음을 알 수 있다.
class Calculator{ int left, right; int third = 0; public void setOprands(int left, int right){ System.out.println("setOprands(int left, int right)"); this.left = left; this.right = right; } public void setOprands(int left, int right, int third){ System.out.println("setOprands(int left, int right, int third)"); this.left = left; this.right = right; this.third = third; } ... }
public class CalculatorDemo { public static void main(String[] args) { Calculator c1 = new Calculator(); c1.setOprands(10, 20); c1.setOprands(10, 20, 30); } }
출처
https://private.tistory.com/25 [공부해서 남 주자]
반응형'기타' 카테고리의 다른 글
Github 민감한 커밋 히스토리 삭제 (git ignore, git filter-branch) (0) 2022.07.14 [GIT] fatal: 'origin' does not appear to be a git repository 에러 해결 (0) 2021.04.14 내가 보려고 정리하는 java 개념 코드 정리 (0) 2021.04.02 [MAC] 터미널(terminal)에서 파인더(finder) 열기 (0) 2021.01.31 [mac os] 리눅스 서버 파일업로드 명령어 (0) 2020.11.16