본문 바로가기
Java

[자바 입문] 오버라이딩

by sangyunpark 2023. 8. 18.

오버라이딩이란?

부모가 가지고 있는 메소드와 똑같은 모양의 메서드를 자식이 가지고 있는 것

메소드를 재정의 하는 것

 

메소드 오버라이딩

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