본문 바로가기
Language/java

Java_Study 객체지향 프로그래밍 (오버라이딩)

by gamxong 2022. 7. 4.

 

오버라이딩이란?
 - 덮어쓰다

 

: 조상 클래스로부터 상속받은 메서드의 내용을 변경하는 것

 

 

오버라이딩의 조건

 

자손 클래스에서 오버라이딩하는 메서드는 조상 클래스의 메서드와

  • 이름이 같아야 한다.
  • 매개변수가 같아야 한다.
  • 반환타입이 같아야 한다.

 

접근제어자와 예외는

  1. 접근제어자는 조상 클래스의 메서드보다 좁은 범위로 변경 할 수 없다.
  2. 조상 클래스의 메서드보다 많은 수의 예외를 선언할 수 없다.
  3. 인스턴스메서드를 static메서드로 또는 그 반대로 변경할 수 없다.

* 접근제어자 접근범위 순

public, protected, (default), private

 

 

 

오버로딩 vs 오버라이딩

 

오버로딩 기존에 없는 새로운 메서드를 정의하는 것
오버라이딩 상속받은 메서드의 내용을 변경하는 것

 

 

super

 

 

: 자손 클래스에서 조상 클래스로부터 상속받은 멤버를 참조하는데 사용되는 참조변수

 

* 조상의 멤버와 자신의 멤버를 구별하는데 사용된다는 점을 제외하고는 super 와 this는 근본적으로 같다.

* super역시 static메서드에서는 사용할 수 없고, 인스턴스메서드에서만 사용 가능

 

 

 

super() - 조상 클래스의 생성자

 

super() 역시 생성자이다.

 

this()는 같은 클래스의 다른 생성자를 호출하는데 사용

super() 는 조상 클래스의 생성자를 호출하는데 사용

 

Object클래스를 제외한 모든 클래스의 생성자 첫 줄에 생성자, this() 또는 super(),를 호출해야 함.
그렇지 않으면 'super();'를 생성자의 첫 줄에 삽입한다.

 

1. 클래스 - 어떤 클래스의 인스턴스를 생성할 것인가?
2. 생성자 - 선택한 클래스의 어떤 생성자를 이용해서 인스턴스를 생성할 것인가?

 

* 조상 클래스의 멤버변수는 조상의 생성자에 의해 초기화되도록 해야 한다.

 

 

 

 

댓글