복잡한뇌구조마냥

[JAVA] 오버라이딩, 클래스 형변환 본문

BE/JAVA

[JAVA] 오버라이딩, 클래스 형변환

지금해냥 2025. 6. 6. 14:36

오버라이딩

- 부모클래스의 메소드를 자식클래스에서 재정의해서 사용하는 것

 

부모 클래스

// Car
public class Car {
	public void run(){
        System.out.println("달리다");
    }
}

자식 클래스

// Bus
public class Bus extends Car {
	public void horn() {
    	System.out.println("경적을 울리다.");
    }
    
	public void run(){
    	super.run();
        System.out.println("안전하게 달리다");
    }
}

 

- 부모클래스에 동일한 메소드를 선언하고 호출했을 때, 자식 클래스에서 메소드를 수정해서 사용할 수 있음.

- super 키워드를 이용해서 부모의 메소드를 호출해서 사용할 수도 있음.

 

클래스 형변환

- 부모타입으로 자식 객체를 참조하게 되면 부모가 가지고 있는 메소드만 사용할 수 있음.

- 자식객체가 가지고 있는 메소드나 속성을 사용하고 싶다면 형변환을 해야함.

 

public static void main(String[] args) {
    Car c = new Bus();
    c.run();
    c.horn(); // 에러 발생

    Bus b = (Bus)c;
    b.run();
    b.horn(); // 문제 없음
}

 

- 부모타입의 객체를 자식타입으로 참조하게 할 때는 명시적으로 형변환을 해주어서 적용 가능

LIST

'BE > JAVA' 카테고리의 다른 글

[JAVA] 예외 처리 ( Exception, Throws, 커스텀 Exception )  (1) 2025.06.07
[JAVA] 내부클래스  (0) 2025.06.07
[JAVA] 접근제한자  (1) 2025.06.04
[JAVA] 오버로딩  (1) 2025.06.01
[JAVA] Scope, Static, Enum  (0) 2025.05.31