오버라이딩 vs 오버로딩

YeonSeong·2021년 11월 6일
0

오버라이딩 overriding

상위 클래스의 동일한 메소드를 하위 클래스에서 다시 정의, 부모에게서 가져온 함수를 덮어씌운다고 생각하면 된다.

오버라이딩의 목적

상위 클래스에서 정의한 메소드를 조금만 수정하거나 완전히 새로운 것으로 쓰고 싶을 때 씀

조건

메소드의 반환 값, 메소드 이름, 매개변수가 같아야 함.
부모의 메소드가 final, private가 붙어있으면 오버라이딩 불가.
부모의 메소드가 자식의 메소드보다 공개적이어야 함.

오버로딩 oveloding

클래스 내부에서 인자가 다르지만 이름이 같은 메소드를 정의해주는 것.

오버로딩 목적

같은 이름의 메소드를 여러개 정의하고 싶을 때 사용

예시

public class addFunction{

	 public int add(int a, int b){
   	return a + b
   }
   
   public int add(int a, int b, int c){
   	return a + b + c
   }
   
   
}

주의사항

반환값은 다를 수 있다.
인자는 같을 수 없다.
정적 메소드는 클래스 내부 변수에 접근 불가
정적 메소드 내부에서 this, super 불가

profile
선한 의도가 선한 결과를 만드는 시스템을 만드는게 꿈입니다.

0개의 댓글