자바 오버로딩(Overloading), this , super
자바 오버로딩(Overloading)
오버로딩(Overloading)은 상속과는 직접적인 관련이 없습니다.
파라미터의 형식이 모두 다른 같은 이름을 가진 메소드를 여러개 만들어 사용하는 경우를 Overloading 이라고 합니다.
다음의 CalTest 클래스내에 같은 이름의 sum 메소드를 두 개 정의하는 경우,
각각 사용하는 파라미터의 개수가 2개와 3개로 다르게 정의된 경우나 파라미터의 데이터 타입이 서로 다르게 정의하는 경우를 오버로딩(Overloading)이라고 정의합니다.
class CalTest {
public int sum(int f1, int f2) {
return f1 + f2;
}
public int sum(int f1, int f2, int f3) { // sum 메소드 오버로딩(Overloading)
}
}
this 키워드
this는 자기자신의 인스턴스를 가리키는 키워드입니다.
아래의 소스코드처럼 this 키워드를 사용하면 자기자신 인스턴스를 가르키며,
파라미터의 인자가 2개인 자신의 sum 메소드를 호출하여 계산합니다.
class CalTest {
public int sum(int f1, int f2) {
return f1 + f2;
}
public int sum(int f1, int f2, int f3) { // sum 메소드 오버로딩(Overloading)
return this.sum(f1, f2) + f3; // this 는 자기자신의 인스턴스, 자신의 sum 호출
}
}
super 키워드
super 키워드는 부모 클래스를 가리키며,
자식 클래스에서 super를 이용하여 부모 클래스의 변수와 메소드에 접근할 수 있는 권한을 부여합니다.
아래의 소스코드처럼 super 키워드를 사용하면 부모 클래스인 Caltest 클래스에 있는 sum 메소드를 호출하여 계산합니다.
Caltest 클래스에서 sum 메소드의 오버로딩(Overloading) 예제,
Caltest 클래스를 상속받은 Caltest2 클래스에서 sum 메소드를 부모 클래스의 sum 과 다르게 재정의한 Override 예제,
Caltest 클래스에서 this 키워드를 사용하여 자기자신 인스턴스 나타내는 예제,
Caltest2 클래스에서 super 키워드를 사용하여 부모클래스인 Caltest 클래스의 sum 메소드를 사용하는 예제를 전체적으로 구현하여 실습한 예제 파일을 다음과 같습니다.
'자바' 카테고리의 다른 글
자바의 다형성(polymorphism) 구현 (0) | 2021.11.16 |
---|---|
상속과 생성자 (0) | 2021.11.14 |
자바 오버라이드(Override) (0) | 2021.11.10 |
자바 상속 (0) | 2021.11.10 |
클래스 구조와 생성자 오버로딩 (0) | 2021.11.09 |
댓글