정보처리기사/오답

프로그래밍 언어

새싹개발자 2020. 10. 10. 22:45

상속, 오버라이딩 개념

상속 : 하위 클래스는 상위 클래스의 메소드와 변수들을 정의하지 않고 바로 사용(물려받는 것)
오버라이딩 : 하위 클래스에서 부모 클래스의 메소드를 재정의하는 과정

- 오버라이딩 메소드는 부모 클래스 메소드보다 우선 순위 높음

class SuperObject{
    public void paint(){
        draw();
    }
    public void draw(){
        draw();
        System.out.println("Super Object");
    }
}
class SubObject extends SuperObject{
    public void paint(){
        super.draw();
    }
    public void draw(){
        System.out.println("Sub Object");
    }
}
public class Main
{
	public static void main(String[] args) {
	    SuperObject a = new SubObject();
	    a.paint();
	}
}

 

SuperObject a = new SubObject();

하위 클래스의 생성자로 객체 변수 선언하고 자료형은 상위 클래스로 지정 -> 오버라이딩 하기 위함

a.paint();

paint메소드 호출 -> 오버라이딩 되었으므로 하위클래스의 paint() 수행

 

public void paint(){

    super.draw();

}

상위 클래스의 draw() 수행

 

public void draw(){

    draw(); 

    System.out.println("Super Object"); 

오버라이딩 된 메소드이므로 하위 클래스의 draw() 수행 -> Sub Object 출력

Super Object 출력