

상속받은 화면 (사실 다 상속받은건데 Protected와 public만 직접적으로 수정가능)
Protected는 # public은 + private은 - 입니다.

상속받은 화면.
그런데 우리가 겹치게 이름을 주면 에러가 난다.

더블클릭하면 나오는 것.

여기서 수정하면 부모꺼 수정이 된다.
그렇다면 나만의 CONSTRUCTOR는 어떻게 만들지?
경우 1.
버튼말고 직접 CONSTRUCTOR 이걸 입력하고 엔터하면 갱신됩니다. 하지만 큰일나요.
경우 2.
버튼을 누른 경우
Yes를 누르면 부모의 변수를 다 상속받았어요.
내가 입력받을 것을 넣어주고.
attribute에도 추가해주세요.
자이제 메소드를 만들어봅시다.
부모의 변수들도 다 받아주고 내것도 받아주고 완성~!
부모의 constructor는 이렇게 생겼어요.
두개가 다른놈이라 가르킬 수 없다.
(go_sub가 더큰놈이라 안된다.)
체크는 되는데 덤프가 뜬다.
이건 잘된다.
바로 이게 UP casting.

원래 이렇게 하면 clear 되어서 객체가 없어지는데
부모를 누가 ref 하고있어서 자식도 안없어진다.
하지만 자식의 속성은 읽을 수도 가져올 수도 없다.

그래서 아까 덤프가 났던 ?= 이걸 써주면 자식까지 객체를 다시 잡을 수 있다.
이게 down casting.

이게 이해가 되면 된다!

여기서 나는 부모와 다른 공식을 쓸거야!
이 버튼을 눌려주세요 (왼쪽은 리디파인 오른쪽은 되돌리기)

리디파인 쓰면 이렇게 바뀝니다.

안의 상황입니다. 주석은 써도 되고 안써도 되는 상황.

이렇게 썼어요.

다형성을 나타내는 겁니다.
160 176 176 이렇게 됩니다.

자식의 새로정의된 메소드를 타기 때문에 그렇다.
go_super의 객체를 ref하지만 자식의 속성은 없어지는 것이 아니기 때문에
160이 아니라 176이 나온다.
즉 객체 자체는 동일한 속성들을 같는다. (값이 다른)
하지만 안에 있는 method,
그 중에서도 부모에게 상속받는 method를 리디파인 하는 경우
코드는 같지만 method가 바뀐 것이다.

덤프난것 확인 가능한 T-code.
ST22

TRY 쓰는 법.

CATCH cx_sy_zerodivide INTO go_ex. 객체를 생성하는 방법 중 하나입니다.

alv oop 이해. 불가