이해가 안가는 내용이나,
설명하기에는 부족했던 부분들을 자세히 작성하며 기록해 나아갈 예정이다.
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