-
오버라이딩(overriding)Programming/JAVA 2020. 6. 9. 01:52
오버라이딩, 조상클래스로부터 상속받은 메소드의 내용을 변경하는 것을 오버라이딩이라고 한다. 가끔 현재 클래스에서 상속받고 있는 조상메서드를 현재 클래스에 맞춰서 수정을 해야할 때가 있다. 이 때 우리는 조상클래스를 수정하는 작업을 하는데 이것을 우리는 메서드 오버라이딩이라고 지칭한다.
다음의 소스코드를 잘 봐 보자.
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; //오버라이딩
}
}
단, 이름과 매개변수 그리고 반환타입이 같아야 한다.
▶오버라이딩은 다 까먹어도 이거만 기억하자.
다만 변경할 수 있는 것은 예외와 접근 제어자는 제한된 조건에서만 변경이 가능하다.
접근제어자는 조상 클래스의 메서드보다 좁은 범위로 변경할 수 없다.
▶만약 조상클래스의 접근 제어자가 protected 라면 그 위의 단위인 public 이나 protected로 써야한다.
/* 접근 제어자는 나중에 후장에서 다루는 걸로 하자.
링크: (일단 공백)/*
조상 클래스보다 적거나 같게 예외를 시켜야만 한다.
▶조상 클래스의 예외보다 같거나 적게 해야하지만 Exception 자체를 throws해버리는 것은 최고 조상을 예외시키는 것으로 가장 많은 개수의 예외를 할 수 있도록 선언 한다는 것을 의미하는 것이다.
//이것도 나중에 후장에서 다루는 걸로!
조상 클래스에 정의 된 static 메서드를 자손 클래스에서 똑같은 이름의 static 메서드를 정의할 수 있는가?
▶결론은 일단 안돼! 이 메서드들은 각자의 클래스에 자신들이 묶여있다고 생각하거든! 그래서 변수.메서드이름() 대신에 클래스.메서드이름()으로 하는 것이 바람직해.
오버라이딩은 간단하게 끝.
제일 이해하기 쉬운 짤... 3초 있다가 이해했다.
출처 : https://www.zerocho.com/category/JavaScript/post/59c17a58f40d2800197c65d6
'Programming > JAVA' 카테고리의 다른 글
제어자 (0) 2020.06.13 super (0) 2020.06.12 상속(inheritance) - 중간 저장 (0) 2020.06.08 오버로딩 (overloading) (0) 2020.05.28 멤버 변수 (스크랩) (0) 2020.05.28