해결된 질문
작성
·
114
1
트럭 스크립트에서 함수 시동켜기 함수를 오버라이딩 후에 Truck이라는 인스턴스를 자동차클래스.new() 를 실행해서 만들었습니다. 근데 Truck1.시동켜기() 하면 "털털털털" 이 실행될줄 알았는데 Car class에 있는 시동켜기 함수가 실행되더라구요. 혹시 가상함수 설정하는 방법이 따로 있을까요?
답변 3
0
안녕하세요. 용기있게 질문 남겨 주셔서 감사합니다.
아래 보여주신 예시처럼 Car.new() 로 인스턴스를 생성하신 경우 Truck(현재 스크립트) 에 대한 인스턴스를 생성하는 것이 아니고 Car 클래스에 대한 인스턴스를 생성하는 것입니다.
때문에 변수 이름이 Truck1 일지라도 부모인 Car 의 인스턴스로 동작하는 것입니다.
만약 Truck 클래스로 인스턴스를 생성하길 원하신다면
Car 클래스 <--상속-- Truck 클래스
위처럼 클래스 간의 상속 관계를 먼저 만드신 후에
Truck.new() 로 인스턴스를 생성하셔야 Car 의 자식인 Truck 클래스가 가지고 있는 오버라이딩 된 함수들을 사용하실 수 있습니다.
이해가 어려운 부분이 있다면 망설임 없이 추가 질문 남겨주시면 감사하겠습니다.
0
질문이 긴 것 같아 다시 정리해서 말씀드릴게요 !
핵심 질문은 truck script에서 Car 클래스를 상속받았는데
truck script 내에서 오버라이딩이 되는 것은 확인했지만
이를 인스턴스화 하여 객체를 생성할 때는 truck이라는 script를 "한번 더" 클래스로 만들어서 객체 생성을 해야하는거겠죠?
0
이해됐습니다. 감사합니다 :)