오버라이딩(overriding)

 

 

1.오버라이딩이란

조상 클래스로부터 상속받은 메서드의 내용을 해당 클래스에 적절하게 변경하는 것을 오버라이딩 이라고한다.

 

상속받은 메서드를 그대로 사용하기도 하지만 때때로 적절하게 변경해서 사야용해야 할때 조상 클레스의 메서드를 오버라이

 

딩 한다

 

 

예시

 

class Point{

int x;

 

String getLocation(){

return "x:" + x;

}

}

 

class Line extends Point{

int x;

int y;

 

String getLocation(){

return "x:"+x +"y:"+y;

}

}

 

 

위에 예시를 보면 같은 메서드 이름이고 리턴 타입도 같지만 y 좌표가 추가된것을 볼수있다 이처럼 같은 기능을 한다면 새로운 메서드를 생성하는것보다

 

오버라이딩해서 기능을 유추하도록 하는것이 새롭게 접근하는 사람이 편하게 사용할수 있게된다

 

 

2오버라이딩의 조건

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

-이름이 같아야함

-매개변수가 같아야함

-리턴 타입이 같아야함

 

==>선언부가 서로 일치해야함 ,  단 접근제어자와 예외는 제한된 조건에서 변경이 가능하다

 

1.접근 제어자는 조상 클래스의 메서드 보다 좁은 범위로 변경할수 없다

2.조상 클래스의 메서드보다 많은 수의 예외를 선언할수 없다

3.인스턴스메서드를 static 메서드로 또는 그반대로 변경이 불가능하다

 

 

 

그러면 마지막으로 메서드 오버로딩과 오버라이딩에 대해서 구분하고 마무리 하겠습니다.

 

오버로딩 - 기존에 없는 새로운 메서드를 정의하는것  (new)

오버라이딩 -  상속받은 메서드의 내용을 변경하는것 (change)

 

 

 

 

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

상속(inheritance)  (0) 2017.05.26
메소드 오버로딩 (method overloading)  (0) 2017.05.23
자바 StringBuffer 에 대해서  (0) 2017.05.22
모든 클레스의 조상 Object 에 대해 알아보자  (0) 2017.05.19
자바 문자열 클레스 String  (0) 2017.05.18

+ Recent posts