오버로딩

Woongbin·2022년 7월 13일
1

Java 기초

목록 보기
7/17
post-thumbnail

상속(Inheritance)

자식 클래스가 상속받고 싶은 부모 클래스를 선택해서 물려 받는 것.

이때 상속받는 클래스를 자식, 하위, 서브 클래스라고 한다.
상속해주는 클래스를 부모, 상위, 슈퍼 클래스라고 한다.

상속의 선언 방법

자식 클래스 뒤에 extends를 쓰고 부모 클래스를 쓴다.

주 의 할 점

  • 다중 상속을 받는 것은 불가능.
  • 즉 단일 상속만 허용.
  • 부모 클래스에는 여러 개의 자식 클래스에게 상속 가능.

TIP !

자식 클래스가 더 다양한 기능이 가능하므로 자식 클래스를 인스턴스로 생성하는 것이 효율적.

super와 super( )

super는 부모 클래스로부터 상속받은 필드나 메소드를 자식 클래스에서 참조할때 사용하는 변수.

super( )는 부모 클래스의 생성자를 호출하는 메소드.

오버로딩(Overloading)

한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메소드가 있더라도 매개변수의 개수 또는 타입이 다르면, 정의할 수 있는 것.

😁오버로딩의 조건

  • 매소드의 이름이 같아야 함.
  • 매개변수의 개수나 타입이 달라야 함.
  • 접근 제어자도 자유롭게 지정 가능.

리턴 값만 다른 것은 오버로딩 불가

😙오버로딩을 사용하는 이유

  1. 같은 기능을 하는 메소드를 하나의 이름을 사용 가능.
  2. 메소드의 이름 절약 가능.

오버라이딩(Overriding)

부모 클래스로부터 상속받은 메소드를 자식 클래스에서 재정의 하는 것.

😗오버라이딩의 조건

자식 클래스에서 오버라이딩하고자 하는 메소드의 이름, 매개변수, 리턴 값이 모두 같아야 함.

🤔오버라이딩의 특징

  1. 자식 클래스에서 오버라이딩하는 메소드의 접근 제어자는 부모 클래스보다 더 좁게 불가.
  2. 예외는 부모 클래스의 메소드 보다 많이 선언 불가.
  3. static메소드를 인스턴스의 메소드로 또는 그 반대로 변경 불가.

오버라이딩과 오버로딩의 공통점, 차이점

오버라이딩오버로딩
자식 클래스의 접근 제어자 (범위) > 부모 클래스의 접근 제어자모든 접근 제어자
리턴형 동일리턴형 달라도 됨
메소드명 동일메소드명 동일
매개변수 동일매개변수 달라야 됨
적용 범위 상속관계적용 범위 같은 클래스 내
profile
블로그 이전 https://woongbin06.tistory.com/

0개의 댓글