해결된 질문
작성
·
212
·
수정됨
0
이번 강의부분이 이해도가 너무 부족한거 같아서 두번정도 돌려들었는데도 통 이해가 안갑니다..
우선 9분에 순서를 보자면
main의 start를 먼저 출력하고
ElectricCar의 생성자(이부분을 c에선 함수라고 했던가요..?)를 불러오고 extends의 car를 불러온 후 Car Created를 출력
ElectricCar의 Electric Car created를 출력
.
.
.
End 이렇게 순서가 되나요?...
또한 startEngine는 왜 부모고 chargeBattery는 왜 자식인지 이 부분도 통 이해가 안가구요..
또한 메서드는 이름이 같고 생성자는 이름이 다르다는 건 알겠습니다. 그 외 기능적으로는 차이가 없는건가요?
이전 강의의 if나 for문 같은경우엔 정말 쉽게 이해하면서 넘어갔는데 상속부분 들어오면서 이해도가 확 떨어져버리네요..
답변 2
0
답변과 별개로, Java 코드를 풀기 전에 워밍업을 위한 챕터를 제작 중에 있습니다.
추후에 올라가면 새소식으로 공지할 예정이오니 조금만 기다려주셔요.
(C를 배우다가 Java로 넘어가면 난이도가 확 올라간다는 피드백이 많았습니다.)
우선 생성자는 함수 탈을 쓰고 있지만, 객체가 생성할 때 한번만 호출되는 것입니다.
물론 자기들끼리 막 부르는 경우가 있습니다. Java에서는 new 뒤에 붙는 것이 생성자입니다.
ElectricCar myElectricCar = new ElectricCar();
이 코드는 ElectricCar라는 타입에 myElectricCar라는 변수를 만들고,
거기에 ElectricCar() 생성자로 태어나게 한다는 것입니다. (매개변수가 없는 기본생성자)
Java는 본인이 태어나기 전에 부모의 생성자를 무조건 호출합니다.
부모의 영역이 생겨야 본인도 생길 수 있습니다.
그래서 Car의 기본생성자가 먼저 실행되고 (Car created)
그 다음에 내가 태어나야겠죠. (Electric Car created)
그 이후에는 자식은 부모의 모든 메서드를 가지고 오는데, 스스로 재정의하지 않았으니 부모와 똑같은 행동을 합니다. 그래서 Engine started가 출력되고
그 다음에는 chargeBattery (부모에게 없었으니 재정의가 아니라 순수 자식이 가지고 있는 메서드) 를 실행해서 Charging battery가 출력됩니다.
이해에 도움이 되셨을까요?
0
안녕하세요, 인프런 AI 인턴입니다.
주서님의 질문은 객체 지향 프로그래밍의 핵심적인 부분, 특히 상속, 메서드 오버라이딩, 그리고 생성자에 대한 이해와 관련이 있어보입니다. 이러한 개념은 객체 지향 프로그래밍에서 중요한 역할을 하며, 각각의 용어와 작동 방식에 대한 명확한 이해가 필요합니다.
질문의 내용 중에서 “9분에 순서”에 대한 부분은 특정 강의의 코드 실행 순서에 대한 설명으로 보입니다. 이와 관련하여, 직접적으로 동일한 상황 설명을 찾기는 어렵습니다. 그러나, 아래 링크에서 비슷한 주제를 다룬 강의 답변을 찾으실 수 있을 겁니다:
주서님의 경우, 상속과 관련된 내용, 생성자의 호출 순서, 메서드 오버라이딩과 같은 개념들에 대한 더 깊은 이해가 필요해 보입니다. 상속은 하나의 클래스(부모 클래스)의 속성과 메서드를 다른 클래스(자식 클래스)가 물려받는 것을 말하며, 이를 통해 코드의 중복을 줄이고 유지 보수를 용이하게 합니다. 메서드 오버라이딩은 자식 클래스가 부모 클래스로부터 상속받은 메서드를 재정의하는 과정을 말합니다. 메서드 오버라이딩을 통해 동일한 메서드 호출에 대해 다른 기능을 실행할 수 있습니다. 생성자는 객체가 생성될 때 호출되어 초기화 작업을 수행하는 특별한 유형의 메서드입니다.
이러한 개념들은 처음에는 다소 복잡하고 어렵게 느껴질 수 있지만, 예제 코드를 따라 해보고, 다양한 상황에서의 실행 결과를 관찰하면서 점차적으로 이해할 수 있을 것입니다. 추가적인 질문이 있거나, 특정 주제에 대한 더 자세한 설명이 필요하다면 망설이지 말고 질문해 주세요.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.