반응형
250x250
Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

폴크(FOLC)

JAVA 오버로딩/오버라이딩 본문

교육 관련/JAVA

JAVA 오버로딩/오버라이딩

folcjin 2022. 4. 13. 16:21
728x90
반응형

# 오버로딩 ( overloading )
   > 함수의 이름을 동일(중복)하게 정의 하는것 ( 객체지향 - 다형성 )
   > 함수의 이름은 1개만 선언 가능하지만 시그니처가 다르면 가능
      - 시그니처 : 함수 선언부에 명시되어 있는 매개변수 리스트
   -> 함수 이름의 종류를 최소화 하여 생성 가능
   -> 함수 호출시에 매개변수나 타입을 신경쓰지 않고 호출 가능

# 조건
   > 함수 이름이 같아야 한다.
   > 매개변수 개수와 타입이 달라야 한다.
      - 반환 타입이 다르더라도 시그니처가 같다면 정의 할 수 없다.

# 소스 코드
public class TEST
{
   public int SUM(int a, int b)
   {
      return (a + b);
   }   
   public float SUM(float a, float b)
   {
      return (a + b);
   }   
}
public class TEST_FUNCTION
{
   public static void main(String[] args)
   {
      TEST tt;
      tt.SUM(10, 20); // 정수형
      tt.SUM(10.0, 20.0); // 실수형
    }
}

 

# 오버라이딩 ( overriding )
   > 상속 관계에서 부모 클래스에 정의된 함수를 자식 클래스에서 다시 정의 하는것 ( 객체지향 - 다형성 )
   -> 자식 클래스는 부모 클래스의 정보를 상속 받음 ( private 멤버 제외 )
   -> 자식 클래스는 상속 받은 함수 그대로 사용해도 되고 필요한 함수만 다시 정의 가능

# 조건
   > 함수의 내용만을 다시 정의 하는 것이므로, 선언부는 그대로 사용해야 한다.
      - 반환 타입은 형 변환이 가능하다면 변경 가능
   > 함수에 설정된 접근 지정 제어자를 더 작은 범위로 변경 할 수 없다.
   > 함수에 설정된 예외 범위를 더 크게 변경 할 수 없다.

# 소스 코드
public class TEST
{
   public show_data()
   {
      return System.out.println("TEST 메소드!");
   }   
}
public class TEST_sub extends TEST
{
   public show_data()
   {
      return System.out.println("TEST sub 메소드!");
   }   
}
public class TEST_FUNCTION
{
   public static void main(String[] args)
   {
      TEST tt = new TEST;
      tt.show_data(); // TEST 메소드!

      TEST_sub tt_sub = new TEST_sub;
      tt_sub.show_data(); // TEST sub 메소드!

      TEST tt2 = new TEST_sub;
      tt2.show_data(); // TEST sub 메소드!
    }
}

728x90
반응형
사업자 정보 표시
사업자 등록번호 : -- | TEL : --

'교육 관련 > JAVA' 카테고리의 다른 글

JAVA 제어자  (0) 2022.05.11
JAVA 생성자 및 this  (0) 2022.04.08
JAVA 클래스  (0) 2022.04.07
JAVA 함수 특징  (0) 2022.03.19
JAVA 파일 연동  (0) 2022.03.15