[Java] 메소드 오버라이딩(method overriding)
by Roel Downey728x90
반응형
메소드 오버라이딩(method overriding)
메소드 오버라이딩이란? 상속 관계에 있는 부모 클래스에서 이미 정의된 메소드를 자식 클래스에서 재 정의하는것
자식 클래스에서는 부모클래스의 private을 제외한 모든 메소드를 상속 받는다.
메소드 오버라이딩 예제
Bus 클래스는 부모클래스인 Car 클래스를 상속 받고 있다.
// Car클래스 (부모 클래스)
public class Car{
public void run(){
System.out.println("Car의 run메소드");
}
}
// Bus 클래스 (자식 클래스)
public class Bus extends Car{
}
public class BusExam{
public static void main(String args[]){
Bus bus = new Bus();
bus.run(); //Car의 run메소드가 실행된다.
}
}
Bus클래스는 부모클래스인 Car 클래스의 모양이 같은 메소드를 선언
public class Bus extends Car{
public void run(){
System.out.println("Bus의 run메소드");
}
}
public class BusExam{
public static void main(String args[]){
Bus bus = new Bus();
bus.run(); //Bus run메소드가 실행된다.
}
}
-
BusExam을 실행하면 Bus클래스의 run메소드가 출력된다.
-
메소드를 오버라이드 하면, 항상 자식클래스에서 정의된 메소드가 호출된다.
-
오버라이딩 한다고 해서 부모의 메소드가 사라지는 것은 아니다.
-
super 키워드를 이용하면, 부모의 메소드를 호출 할 수 있다.
-
public class Bus extends Car{
public void run(){
super.run(); // 부모의 run()메소드를 호출
}
}
728x90
반응형
'Java' 카테고리의 다른 글
[Java] JUnit4 사용하기 (Eclipse에서) (0) | 2020.04.06 |
---|---|
[Java] 추상 클래스(abstract Class) (0) | 2020.03.20 |
[Java] 인터페이스(interface) (0) | 2020.03.18 |
[Java] final , static (0) | 2020.03.18 |
[Java] Scanner 를 close() 했을때 illegalStateException (0) | 2020.03.17 |
블로그의 정보
What doing?
Roel Downey