본문 바로가기

플밍 is 뭔들/JAVA

[자바] 오버로딩 / 오버라이딩

※ 오버로딩이란?
메서드 이름이 같더라도 매개변수에 따라 하나의 메서드 이름으로 여러 기능을 구현할 수 있는 기능이다.
ex)
void println()
void println(boolean x)
void println(char x)
void println(int x)
void println(String x)
....

위와 같이 메서드들이 같은 이름을 갖고 있지만 매개변수가 다르다. 
이 메서드만큼 새로운 이름을 지으려면 이름을 짓기도 어렵고 사용하는 사람도 기억하기 부담스럽다. 
하지만 오버로딩을 통해 하나의 메서드 이름으로 정의될 수 있다.


※ 오버로딩의 조건
- 메서드 이름이 같아야 한다.
- 매개변수의 개수 또는 타입이 달라야 한다.
- 리턴타입은 오버로딩을 구현하는데 영향을 주지 않는다. 즉 리턴타입은 달라도 된다.

public void method(){}
public void method(String a){}
public int method(int a){return 1;}



※ 오버라이딩이란?
상속받은 메서드의 내용을 변경하는 것.


※ 오버라이딩의 조건
- 메서드 이름이 같아야 한다.
- 매개변수가 같아야 한다.
- 리턴타입이 같아야 한다.


※ 오버라이딩의 특징
- 접근 제어자를 조상 클래스의 메서드보다 좁은 범위로 변경할 수 없다.
- 예외는 조상 클래스의 메서드보다 많이 선언할 수 없다.
- 인스턴스메서드를 static메서드로 또는 그 반대로 변경 할 수 없다.


※ 오버로딩 vs 오버라이딩
오버로딩 - 기존에 없는 새로운 메서드를 정의하는 것.
오버라이딩 - 기존의 메서드를 상속받아 내용을 변경하는 것.



'플밍 is 뭔들 > JAVA' 카테고리의 다른 글

[자바] 제어자(Modifier)  (0) 2017.09.18
[자바] 상속  (0) 2017.09.11
[자바] 클래스  (0) 2017.09.11
JVM(자바가상메모리)의 메모리구조  (0) 2017.09.11
자바 API와 API 문서보는 법  (0) 2017.09.11