Method Overriding
부모에 상속받은 메소드를 자식에서 재정의하는 걸 의미한다.
부모에서 상속받은 메소드는 body가 구현되어 있는 일반적인 concrete 메소드일 수 있고
메소드 body가 없는 abstract 메소드가 될 수 있다.
키 포인트는 자식에서 입맛에 맞게 구체적으로 구현한다는 것이다.
파라미터는 부모와 자식 모두 반드시 같아야 한다.
리턴 타입도 역시 같아야 한다.
J2SE 1.5 이후에는 리턴 타입이 같거나 서브 클래스일 수 있다.
메소드 오버라이딩을 하는 이유는
자식 클래스에서 필요에 의해 메소드 구현을 다양하게 할 수 있기 위함이다.
Method Overloading
동일한 이름을 가진 메소드들이 같은 클래스에 존재하고
메소드 파라미터 리스트를 통해 개별적인 메소드를 호출할 수 있다.
이름은 같은데 서로 다른 메소드들이 존재한다.
파라미터는 모두 달라야 한다.
리턴 타입은 같거나 다를 수 있다.
가독성을 높이기 위해서 사용한다.
정리
Overriding | Overloading |
상속성 | 같은 클래스 존재 |
파라미터 같아야 함 | 파라미터 달라야 함 |
리턴 타입이 같거나 서브 클래스 | 리턴 타입이 같거나 달라야 함 |
'컴퓨터공학 > Java' 카테고리의 다른 글
CS> Static의 의미는 무엇인가? (0) | 2021.07.03 |
---|---|
CS> String을 생성할 때 new() 와 literal 방식의 차이점은? (0) | 2021.07.02 |
CS> String 과 String buffer의 차이점은?? (0) | 2021.07.02 |
CS> 자바에서 Stack 과 Heap의 메모리 구조 차이점은?? (0) | 2021.07.02 |
CS> autoboxing 과 unboxing은 무엇인가? (0) | 2021.07.02 |