오버라이딩이란?
부모가 가지고 있는 메소드와 똑같은 모양의 메서드를 자식이 가지고 있는 것
메소드를 재정의 하는 것
메소드 오버라이딩
Car 클래스를 상속받은 Bus 클래스는 부모클래스가 가지고 있는 run()메소드를 잘 사용한다.
public class Car{
public void run(){
System.out.println("Car의 run메소드");
}
}
public class Bus extends Car{
}
public class BusExam{
public static void main(String args[]){
Bus bus = new Bus();
bus.run(); // Car의 run메소드 실행
}
}
Bus 클래스에 부모가 가지고 있는 메소드와 모양이 같은 메소드를 선언
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 메소드 실행
}
}
Bus의 run메소드가 출력된다.
메소드를 오버라이드 하면, 항상 자식클래스에서 정의된 메소드가 호출된다.
오버라이딩 한다고 해서 부모의 메서드가 사라지는 것은 아니다.
super키워드를 이용하면,. 부모의 메소드를 호출할 수 있다.
public class Bus extends Car{
public void run(){
super.run();
System.out.println("Bus의 run메소드");
}
}
오버라이딩 실습(1)
https://school.programmers.co.kr/learn/courses/5/lessons/393
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
public class Bus extends Car {
// run 메소드를 오버라이드 하세요. 메소드의 접근 제한자는 public이어야 합니다.
public void run(){
System.out.println("버스 달리기");
}
}
오버라이딩 실습(2)
https://school.programmers.co.kr/learn/courses/5/lessons/906
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
public class Bus extends Car {
public void run() {
// Car 클래스의 run을 호출합니다.
super.run();
System.out.println("다음 정거장을 안내합니다.");
}
}
'Java' 카테고리의 다른 글
[자바 입문] 인터페이스 (0) | 2023.08.18 |
---|---|
[자바 입문] 클래스 형변환 (0) | 2023.08.18 |
[자바 입문] super와 부모생성자 (0) | 2023.08.16 |
[자바 입문] 추상 클래스 (0) | 2023.08.16 |
[자바 입문] 접근제한자 (0) | 2023.08.16 |