ㅇ저 왼쪽에 void add(int val) { this.value += val;
이부분어차피 Calculator 클래스에 있으니까 안적어도되는거아닌가요
근데 오른쪽은 또 110이 나와서;;;
이게 그럼 실행이 MaxLimitCalculator > Calculator 순으로 가는건가요?
ㅇ저 왼쪽에 void add(int val) { this.value += val;
이부분어차피 Calculator 클래스에 있으니까 안적어도되는거아닌가요
근데 오른쪽은 또 110이 나와서;;;
이게 그럼 실행이 MaxLimitCalculator > Calculator 순으로 가는건가요?
ㅇㅋ ㄱㄷ
해당 댓글은 삭제되었습니다.
그래서 그 그냥 cal 보다 maxlimitcal 이 먼저니까 저기서 100이상이라고 나오는거아닌가요
아 100 이상이라고 인식하고 부모클래스가 110으로 하는건감요
아그러면 maxlimitcal 에서 더해야서 110 이 넘어서 if문에 걸리게 해야된다는거죠
MaxLimitCalculator에 파라미터 받는 부분이 없.. - dc App
파라미터 받는다는게 무슨말씀인지 잘모르겠어요 ㅠ
MaxLimitCalculator(int val) 이게 없으면 Calculator 를 그냥 extends 만 하게 때문에 값을 그대로 뽑아내는거임 - dc App
그리고 value 에 val 을 += 더해서 넣어주는게 포인트임 그래야 this.value 에서 값이 더해지기 때문이지 그러면 60 + 50이 this.value에 들어가서 110인 값의 분기가 밑에 정의 되게 되는거임 그럼 getValue 했을 때 분기에서 정의된 100을 가져오는거림 - dc App
Cal.maxㅇㅇㅇ 하고 거기에 값을 넣어서 value += val 하면 됨 - dc App
아리에랑일할레
핡..ㅋㅋㅋㅋ - dc App
ㅇㅎ 그러면 제가 만든 maxlimit.에는 +하는게없어서 그냥 넘어가고 cal 클래서에서 계산이 되니까 110이나오는건가요
ㅇㅇ 맞음 - dc App
ㅇㅎ 고마워요
새벽에그게이노
저시간대에ㅁ만와요 ㅠ
화이팅
엄청많이발전했음 ㅇㅅㅇ 한번 cal.max.....해바
오버라이딩이 왼쪽걸 말한거였네 ㅇㅅㅇㅋ
오버라이딩그딴건 모르겠고 add는 제댜로 작동하고있음 max리밋 서큘레이터가 100이상이면 100으로 바꿔주는건데 맥스리밋서큘레이터는 호출되지않아서그래
좌측은 add안에 맥스리밋서큘레이터까지 들어있어서 같이 작동하는거고
add 50밑에 cal.맥스리밋서큘레이터 해주면 작동할걸
아 그럼 저는 Maxlimit을 calculator 에 extends 하면 걸리겟네요
ㄴㄴ max리밋을 add에 넣거나 실행해줘야지
음 그러니까 좌측의 add는 상속받은 add가 아니라 자기 자신의 add를 사용한거야. 우측의 add는 상속받은 add고 명칭은 같지만 서로 다른함수임
아 우측에 add가없어서 그렇다고 이해하면되나요
말로만 보면 좌측에 있는 add가 우측에 없어서 그런게 맞긴한데 ㅋㅋ지금 의문이 상속받은 add가 있고 서큘레이터도 있는데 왜 나는 좌측add처럼 동작안하냐 이거잖아?
좌측 add는 서큘레이터를 포함한 add고 우측은 서큘레이터가 분리된 add니까 서큘레이터를 add로 넣던가 아니면 별도로 서큘레이터를 돌려줘야한단거였음
네 맞아요 상속받은 add가있는데 왜 add가 작동안하고 그러니까 if도 작동안하고 그냥 부모클래스로가서 110이나온거같은데
ㅇㅎ 감사합니다
상속했을때 동일네임 함수가 있으면 상속 받는 클래스쪽의 함수가 우선되고 상속한 클래스의 함수를 호출하려면 super를 사용해야함 ㅇㅅㅇ
좌측에는 add가 두개있는거지 하나는 maxlimitc...까지ㅡ들어있는 add, 상속받은 add 이 경우 add는 자기자신거고 상속받은 add는 super add가 댐 ㅇㅅㅇ