본문 바로가기
자바

자바 오버로딩(Overloading), this , super

by 복제비 2021. 11. 12.

자바 오버로딩(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

댓글