티스토리 뷰
- 오버라이딩(Overriding)
메소드의 재정의를 뜻한다.
TestA와 TestB라는 클레스가 있을 때 TestA를 TestB가 상속받고 TestA의 메소드를 TestB가 재정의 할 때 오버라이딩이라 말한다.
오버라이딩 할때에는 접근제한자, 메소드의 이름, 리턴타입 그리고 파라미터의 타입과 수가 일치해야 한다.
class TestA {
public int add(int a, int b){
return a + b;
}
}
class TestB extends TestA {
int c = 10;
public int add(int a, int b){
return a + b + c;
}
}
위의 B클레스의 add메소드가 오버라이딩한 상태이다.
- 오버로딩(Overloading)
이름이 같은 여러개의 메소드를 만드는것을 뜻한다.
오버로딩 할때에는 메소드의 이름이 같고 파라미터의 타입과 개수가 달라야 한다.
파라미터의 타입과 개수가 다르다면 접근재한자와 return타입은 상관없이 만들 수 있다.
만약 파라미터의 타입과 개수를 같게하여 접근제한자와 return타입만 다르게 한다면 에러가 난다.
class TestA {
public int add(int a, int b){
return a + b;
}
public int add(int a, int b, int c){
return a + b + c;
}
}
클레스 A의 메소드 add를 오버로딩한 상태이다.
'java&spring' 카테고리의 다른 글
인터페이스(interface) (0) | 2016.08.06 |
---|---|
[Java] 생성자 (0) | 2016.08.04 |
this, this(), super, super() (0) | 2016.08.02 |
[Java] try-with-resources (0) | 2016.07.25 |
삼항 연산자 (0) | 2016.07.23 |