728x90
반응형
한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메서드가 있더라도, 매개변수의 개수 또는 타입이 다르면 같은 이름을 사용해서 메서드를 정의할 수 있다.
오버로딩 조건
메서드 이름이 같아야 함
매개변수의 개수 또는 타입이 달라야 한다.
매개변수는 같고, 리턴 타입이 다른 경우에는 오버로딩 성립X
오버로딩 예
void println()
void println(boolean x)
void println(char x)
void println(char[] x)
오버라이딩
부모 클래스로부터 상속받은 메서드의 내용을 변경하는 것
상속받은 메서드를 그대로 사용하기도 하지만, 자식 클래스에 맞게 변경해야 하는 경우가 많다. 이럴때 부모 메서드를 오버라이딩 하는 것!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | class Point { //부모 클래스 int x; int y; String getLocation() { return "x: " + x + ", y: " + y; } } class Point3D extends Point { // 상속받은 자식 클래스 int z; String getLocation() { return "x: " + x + ", y : " + y + ", z : " + z; // } } | cs |
이름이 같아야 한다.
매개변수가 같아야 한다.
리턴 타입이 같아야 한다.
오버로딩 vs 오버라이딩
둘은 혼동하기 쉽지만, 차이는 명백하다.
오버로딩은 기존에 없는 새로운 메서드를 추가하는 것 (NEW)
오버라이딩은 부모로부터 상속받은 메서드의 내용을 변경하는 것 (CHANGE, MODIFY)
728x90
반응형
'정보' 카테고리의 다른 글
클라우드 컴퓨팅 정리 (0) | 2018.06.22 |
---|---|
블록체인이란 무엇인가 (0) | 2018.06.08 |
사물인터넷(IOT)이란 무엇인가 (0) | 2018.06.08 |
객체, 클래스, 인스턴스의 차이 (0) | 2018.04.04 |
구글 드라이브를 통해 외부 이미지 링크 저장하기 (0) | 2018.03.26 |