* 오버라이딩 overriding
- 메소드의 재정의
- 부모클래스의 기능을 변경하거나 필요에 따라 확장을 필요로 할 때 사용. (확장성)
- 부모클래스로부터 상속받은 메소드의 내용을 상속받는 클래스에 맞게 변경하는 것.(change,modify)
- 현재 나한테 맞게 사용하기 위함.
- 부모클래스가 가지는 메소드를 자식클래스에서 똑같이 새롭게 만들게 되면 더 이상 자식클래스에서
이름이 같은 메소드를 호출할 수 없게 된다.
---------------------------------------
package oop5super;
//1. 메소드 원형이 다름으로 오버라이딩이 아니다. 단순상속.
class OverA {
public void show(String str) {
System.out.println("상위클래스의 메소드 show(String str) 수행 " + str);
}
}
class SubOverA extends OverA {
public void show() {
System.out.println("하위클래스의 메소드 show() 수행");
}
}
public class OverridingEx1 {
public static void main(String[] args) {
SubOverA over=new SubOverA();
over.show();
over.show("HAPPY");
}
}
----------------------------------------
package oop5super;
//상위 클래스와 하위 클래스의 메소드 원형이 같음으로 Method Overriding이라고 한다.
class OverB {
OverB() {}
public void show() {
int i =10;
System.out.println("부모클래스의 show() " + i);
}
public void parent() {
System.out.println("부모클래스에만 있는 메소드 parent()");
}
}
//==========================
class SubOverB extends OverB {
SubOverB(){};
//overriding
public void show(){
double d= 10.5;
System.out.println("자식클래스의 show() " + d);
}
}
public class OverridingEx2 {
public static void main(String[] args) {
SubOverB over=new SubOverB();
//상속이 무시되면서 자식 클래스의 메소드가 수행된다.
over.show();//10.5
}
}
------------------------------------
package oop5super;
class TV {
public TV(){
System.out.println("TV 생성자");
}
}
class Movie extends TV{
public Movie() {
System.out.println("Movie 생성자");
}//기본생성자
}
class Action extends Movie{
//자기클래스의 생성자 함수 호출 this()
//this(); //Action()생성자 호출
public Action(){
System.out.println("Action 생성자");
}
public Action(String name)
{
this();//기본생성자 호출
System.out.println("액션영화제목:"+name);
}
}
public class OverridingEx3 {
public static void main(String[] args) {
//상속관계에서는 부모클래스의 생성자가 먼저 실행된다.
//Movie movie=new Movie();
//TV()생성자 -> Movie()생성자
Action action=new Action();
//TV생성자->Movie생성자->Action생성자
Action act=new Action("아바타");
}
}
'..열심히 공부하세.. > JAVA 문법' 카테고리의 다른 글
[27] super, super() (0) | 2012.05.01 |
---|---|
[26] 상속관계에서의 생성자 (0) | 2012.05.01 |
[24] 상속 (0) | 2012.05.01 |
[23] 접근제어자 (0) | 2012.05.01 |
[22] final 키워드 (0) | 2012.04.27 |