이해가 안가는 내용이나, 

설명하기에는 부족했던 부분들을 자세히 작성하며 기록해 나아갈 예정이다.

 

 

 

 

 

20번_ 자바 코드 결과값 

 

class SuperObj {  //부모클래스
    public void show() {
        print();
    }

    public void print() {
    	print();
        System.out.print("Super");
    }
}

class SubObj extends SuperObj {	//자식클래스
    @Override
    public void show() {
        super.print();
    }

    @Override
    public void print() {
        System.out.print("Sub");
    }
}

public class Soojebi {
    public static void main(String[] args) {
        SuperObj s = new SubObj();	//이 코드에 따라 위의 결과값이 달라진다. 
        s.show();
    }
}

 

 

풀이 

1.  java는 main에서 시작한다. 

2. SuperObj s = new SubObj();   //다형성_ 부모 클래스 타입의 변수에 자식 클래스의 객체를 할당하는 것이다. 

3. s.show();

4. Subobj class의 show() 함수가 실행된다. 

4-1. super.print();   //Superobj class로 이동한다. 

 

5. Superobj class의 print()함수 실행

5-1. print()함수 _ print(); // 이는 자식 class에 있는 print()를 이용하는 것이다.  <- Sub실행

5-2. 자식 class가 종료되고 다시 부모클래스의 장소로 와서 Super가 실행된다. 

 

 

 


=> 이는 다형성의 개념과 오버라이딩의 개념을 알아야한다. 

오버라이딩 : 부모 class의 매서드를 자식class 매소드의 재정의하는 것

다형성 : 하나의 객체가 여러가지 타입을 가질 수 있는 것을 의미한다. 

 

+ 오버로딩 :  같은 이름의 매소드가 매개변수의 타입이나 개수에 따라 다르게 정의되는 것을 말한다. 

 

 

 

참조 사이트 : https://www.tcpschool.com/java/java_inheritance_overriding 

 

 

 

 

정답
더보기

SubSuper

 

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+ Recent posts