print() 함수를 분리한 이유 ? -> print는 콘솔용 함수이기 때문에?
새로운 함수 등장 -> 프레임의 역할을 갖는다
프레임 창 끄려면 강제종료 해줘야 함!!
Is A 상속
Lotto 클래스를 다시 사용할 때, 조금 고쳐써야 하는 일이 생긴다면
1. 새로 만들어서 새로만든걸 고쳐쓰거나
2. 기존의 것을 가져와서 조금 수정해서 고쳐쓰는 방법
고쳐쓸 때도 Lotto를 이용하여 고쳐 쓰는 관계 (Is A) <-> 그대로 가져와서 쓰는 부품과 제품 관계 (Has A)
동일한 부품을 만드는데 기존의 부품이 쓸만하다면 그걸 가져와서 고쳐쓰면 -> Is A 관계
예시로 좀 더 살펴보자
아이언봇을 만들려고 한다
아이언봇을 만들 때 필요한 부품들이 그대로 있다면 그것을 그대로 has A 상속받아서 제품을 만들 수 있다
그런데 몸통 부품을 구할 수 없다면!
몸통 부분의 틀을 구해 가운데 소켓?을 부착해서 만들 수 있다 -> is a 상속했다
만약에 소켓만 없고 다 완성이 되어있는 로보트가 있다면?
로보트를 틀로 이용해서 소켓만 부착해 아이언봇 완성할 수 있다 -> is a 상속만을 이용
다시 로또로 돌아가서...
상속.IS_A 에서는 기존의 Lotto 클래스가 (기본으로) 필요한데.. 역정렬이 가능한 함수가 있으면 좋겠다!
-> 그렇담 메모리 상에서 어떻게 생성되는가, 생성자는 어떻게 생성되는가?
성적데이터 가지고 상속 이용해보자
Exam 클래스에 있는 세가지 과목 말고 컴퓨터 과목이 더 필요하다 (Exam 손대지 말고 새로 만들어보기)
NewExam 클래스에 컴퓨터 과목 추가해주자
왜? 현재 total() 함수에는 컴퓨터과목이 추가되지 않았으므로 30이 나오는게 당연
부모 이전의 상속관계 (부모의 부모) 는 신경쓰지 않는다 -> super와 this 뿐
생성자는 맨 처음에만 한번만 호출 될 수 있어야 한다
따라서 바로 위 사진처럼 순서가 뒤바껴 사용할 수 없다
컨트롤 스페이스 누르면 오버라이드 가능한 부모의 함수들을 볼 수 있다
자 그렇다면,
부모의 total 함수 오버라이드 해서 고쳐보자
평균도 4로 나눠야 함! 고쳐보기
다음시간
-> 생성자 오버로드
'뉴렉처 과정 기록 (Backend) > JAVA' 카테고리의 다른 글
04/02 JAVA 객체 형식에 따른 함수 호출, 동적바인딩 (0) | 2021.04.02 |
---|---|
04/01 JAVA 생성자, 오버로드(Overload) / 객체의 참조형식 (0) | 2021.04.01 |
03/30 JAVA 객체지향, 상속(Has A) (0) | 2021.03.30 |
03/29 JAVA 객체지향 (0) | 2021.03.29 |
static / instance (0) | 2021.03.26 |