안녕하세요 영상 덕분에 상속 부분이 점점 쉬워지고 있습니다. 이번 영상에서 25번 문제의 경우에는 이해를 편하게 하기 위해서 작동할 메소드가 어느 클래스에 정의되어 있고 그를 기준으로 가까운 변수가 사용된다고 하셨는데 이 설명을 메모리의 관점에서는 어떻게 봐야할지 잘 이해가 되지 않네요... 아버지가 날 낳은 형태로 변수를 사용하게 된다면 변수에 할당된 객체는 자식의 형태를 가지는 인스턴스이기에 메모리에 부모공간+자식공간만큼 할당 되어있지만 변수의 자료형은 아버지의 형태기에 같은 이름의 멤버 변수가 있다 하여도 오버라이딩 된 함수가 아니고서야 부모의 변수를 사용한다고 이해하면 될까요?
선생님 질문이 하나 더 있습니다 2:48 이부분에서 class B가 class A를 상속하기때문에 판서하신것처럼 b1에서 a:20 , p.a:10 인거는 알겠는데 우측에다 판서하신 b2는 조상 클래스인 A의 참조변수라서 p.a :10 이것만 해당되는걸로 전 이해하는데 왜 b2가 자손인 a:20도 가지게 되는지 이게 궁금합니다ㅜㅜ
@@토드-g5b 객체를 생성시키게 되면 멤버변수를 가지게 됩니다. 상속관계에서는 상속을 받았기 때문에 아버지의 멤버와 내 멤버를 모두 가지게 됩니다. 아버지의 변수명과 같다해도 메모리 할당 공간이 틀리기때문에 두개의 값을 가지게됩니다. 프로그램에서 변수명이 같다는건 같은 공간을 참조 하는게 아니라 서로 다른 공간을 가리키게 됩니다~~~
안녕하세요~~~ 1:50 에서 super(); 는 사용을 하나 안하나 똑같은 결과 입니다. 부모의 생성자를 호출하지 않으면 기본적으로 인자 없는 생성자가 호출되기 때문에 결과는 달라지지 않고요~~ 3:28 에서 super(x); 를 수행하게 된다면, 가다가라 가 아닌, 가다나라 가 출력이 되게 됩니다. 인자없는 생성자 대신 인자 있는 생성자를 호출했기 때문에 나 가 출력이 됩니다. 감사합니다. ^^
완벽하게 이해했습니다. 감사합니다
안녕하세요~~
도움이 되셨다니 정말 다행입니다. ^^
깨알 자바특강이 필요한 시기입니다. 무슨얘기 인지 모르겠네요. 감사합니다. 항상 건강하세요! ❤❤❤
안녕하세요~~
예전에 깨알 자바 특강이 있었는데, 클레임이 워낙에 많아서리..ㅜㅜ
카페에서 공유해달라고 하시면 공유해주시는 분들이 계실꺼에요~~
오늘도 좋은 하루 되세요~~
감사합니다. ^^
@@HeungSsaem 흥달쌤님, 댓글 감사합니다. 항상 건강하시고, 늘 행복하세요!
엔잡에 댓글 달아주셔서 보러왔어요! 감사합니다!
안녕하세요~~~
또 질문 있으시면 언제든 주세요~~
감사합니다. ^^
선생님..너무 잘 가르켜주셔서 감사합니다.
여기 q&a 너무 좋아요ㅋㅋㅋㅋ
정리가 정말 잘 되어있는 영상이네요!
안녕하세요~~
1회 실기가 너무 임박한 관계로 답변이 늦어져 죄송합니다.
좋은 결과 있으셨길 바랍니다.
감사합니다. ^^
감사합니다..
설명 너무 잘해주시네요 아버지 자식
꼭 기억하겠습니다! 특히 super. 에 따라 참조하는 수가 틀린다는 점, 잘 기억할게요.
안녕하세요~~~
꼭 기억하셔서 실기 꼭 합격해주세요~~
감사합니다. ^^
오버로딩이면 무조건 부모님을 따르는게 아니라 변수형식에 따라 가는거죠?
안녕하세요. 선생님 질문이 있습니다. 새로운 객체를 생성할 때 생성자를 호출하는데 아버지가 날 낳은 형태나, 자식이 자식을 낳은 형태나 모두 부모의 생성자를 태우는건 동일한건가요?
안녕하세요~~
넵, 상속관계가 있다면 무조건 부모부터 생성자를 태워야 합니다.
감사합니다. ^^
선생님 이햐가 안가는게 처음에는 오버라이딩을 왜 안하나요? 두번째 문제에 오버라이딩 부분은 이해가 가는데 첫번째 문제에서 오버라이딩 안하고 2개를 출력한게 이해가 안가요
가다가다라?가. 출 력이되나요?그럼. 마지막에. 가. 는또왜출력이되나요?
안녕하세요 영상 덕분에 상속 부분이 점점 쉬워지고 있습니다.
이번 영상에서 25번 문제의 경우에는 이해를 편하게 하기 위해서 작동할 메소드가 어느 클래스에 정의되어 있고 그를 기준으로 가까운 변수가 사용된다고 하셨는데
이 설명을 메모리의 관점에서는 어떻게 봐야할지 잘 이해가 되지 않네요...
아버지가 날 낳은 형태로 변수를 사용하게 된다면 변수에 할당된 객체는 자식의 형태를 가지는 인스턴스이기에 메모리에 부모공간+자식공간만큼 할당 되어있지만
변수의 자료형은 아버지의 형태기에 같은 이름의 멤버 변수가 있다 하여도 오버라이딩 된 함수가 아니고서야 부모의 변수를 사용한다고 이해하면 될까요?
안녕하세요~~~
보통 부모가 날 낳았을때는 해당 인스턴스에 부모의 변수들도 모두 가지고 있는 형태가 됩니다.
메서드들만 인스턴스가 공유하는 형태입니다.
1회 실기가 너무 임박한 관계로 답변이 늦어져 죄송합니다.
좋은 결과 있으셨길 바랍니다.
감사합니다. ^^
A b2 = newB(1)에서
자식 클래스에서 인자있는 생성자를 호출하기 전 super라고 명시되어 있는지
확인 없다면 부모 클래스에 인자 없는
생성자 호출 !!!
두 번째
메소드가 어디에서 실행되느냐에 따라서
참조하는 변수가 달라짐
선생님 질문이 하나 더 있습니다 2:48 이부분에서 class B가 class A를 상속하기때문에 판서하신것처럼 b1에서 a:20 , p.a:10 인거는 알겠는데 우측에다 판서하신 b2는 조상 클래스인 A의 참조변수라서 p.a :10 이것만 해당되는걸로 전 이해하는데 왜 b2가 자손인 a:20도 가지게 되는지 이게 궁금합니다ㅜㅜ
죄송하지만 해당 분초를 따져서 질문을 이해하기가 조금 힘이드네요~~
질문의 코딩을 주시면 답변 드리겠습니다.
2:35 부터 우측에다 b2에 관해 판서하시면서 p.a는 10인거 알겠는데 class B의 맴버인 a:20까지 같이 포함한게 이해가 안갑니다
@@토드-g5b 객체를 생성시키게 되면 멤버변수를 가지게 됩니다.
상속관계에서는 상속을 받았기 때문에 아버지의 멤버와 내 멤버를 모두 가지게 됩니다.
아버지의 변수명과 같다해도 메모리 할당 공간이 틀리기때문에 두개의 값을 가지게됩니다.
프로그램에서 변수명이 같다는건 같은 공간을 참조 하는게 아니라 서로 다른 공간을 가리키게 됩니다~~~
선생님 궁금한게 그럼 1:50 이때 super() 사용한 경우와 3:28 이때 super(x) 사용되어진 경우 답이 어떻게 달라지나요??
안녕하세요~~~
1:50 에서 super(); 는 사용을 하나 안하나 똑같은 결과 입니다.
부모의 생성자를 호출하지 않으면 기본적으로 인자 없는 생성자가 호출되기 때문에 결과는 달라지지 않고요~~
3:28 에서 super(x); 를 수행하게 된다면, 가다가라 가 아닌, 가다나라 가 출력이 되게 됩니다.
인자없는 생성자 대신 인자 있는 생성자를 호출했기 때문에 나 가 출력이 됩니다.
감사합니다. ^^
@@HeungSsaem아 늦은밤 정말 감사해요 선생님 ㅜㅜ 진짜 이해 다 되었습니다
안녕하세요 혹시 1번문제답 세로로 쓰는건가요?
2번문제 답은 뭔가요... !
안녕하세요~~~
1번 문제는 print 만 사용이 되었기 때문에 가로로 써야 합니다.
2번 문제는
Foo : 4
Bar : 13
이 출력됩니다.
감사합니다.