본문 바로가기
IT/Java

Overriding

by 봉즙 2019. 6. 25.

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

class Point {
	int x;
    int y;
    
    String getLocation() {
     	return "x :" + x + ", y :"+y;
    }
}
class Point3D extends Point{
	int z;
    
    String getLocation() {//선언부가 일치해야한다.
    	return "x :" + x + ", y :"+ y + ", z:" + z;
   }
}

 

오버라이딩 조건 3가지

  1. 선언부가 일치해야한다.
    1. 자손클래스에서 오버라이딩하는 메서드는 조상클래스의 메서드와 이름이 같아야한다.(
    2. 매개변수가 같아야 한다.
    3. 변환타입이 같아야 한다.지
  2. 접근 제어자는 조상클래스의 메서드보다 좁은 범위로 변경 할 수 없다.
  3. 조상클래스의 메서드보다 많은 수의 예외를 선언 할 수 없다.

※인스턴스 메서드를 static 메서드로 또는 그 반대로 변경시 별개의 메서드를 정의한 것이지 오버라이딩이 아니다.

 

오버라이딩과 오버로딩의 차이

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

 

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

 

super() : this()와 마찬가지로 super()역시 생성자이며 조상클래스의 생성자를 호출하는데 사용, 자손 클래스의 인스턴스 생성시, 자손의 멤버와 조상의 멤버가 합쳐진 하나의 인스턴스 생성

'IT > Java' 카테고리의 다른 글

Polymorphism  (0) 2019.06.26
제어자  (0) 2019.06.25
상속, 포함 관계  (0) 2019.06.24
생성자  (0) 2019.06.23
Overloading  (0) 2019.06.23

댓글