기금넷 공식사이트 - 경제 뉴스 - Java에서 super의 용도와 사용 시기, Frame(JFrame) 확장 시기

Java에서 super의 용도와 사용 시기, Frame(JFrame) 확장 시기

복합 최적화 및 상속이므로 상속할 필요가 없습니다.

/FLEX/thread-2978-1-1.aspx). 당시 나는 그들에게 개조와 조립이라는 매우 은유적인 별명을 붙였습니다. 자동차를 예로 들어보겠습니다. 양산차에 대형 리어 윙을 추가하려고 합니다. (최근에는 스피드스터가 사람을 치는 사건으로 인해 불법 개조가 인터넷에서 비난을 받고 있습니다. 여기서는 예를 들어보겠습니다. 결국 우리가 설명하고 싶은 것은 여전히 ​​프로그래밍 기술적인 문제입니다.) 우리는 이것이 원래 자동차를 기반으로 하고 있으며 리어 윙은 성능을 확장하기 위해 그 위에 추가된 또 다른 사고방식은 우리가 두 개의 "부품"을 사용하여 경주용 자동차를 "만드는 것"이라는 것을 이해할 수 있습니다. 하나는 생산용 자동차이고 다른 하나는 경주용 자동차입니다. 후방 날개.

이 두 가지 '아이디어'가 프로그램에 반영되는데, 이는 상속과 구성의 관계이다. 이 기사의 "정신"에 따르면, 구성으로 구현될 수 있다면 상속보다 우선적으로 사용해야 합니다. Flex 컨트롤을 구축하는 프로젝트에서 경험한 바에 따르면 Flex 컨트롤은 상속을 위해 설계되지 않았으며(해당 컨트롤의 슈퍼클래스 제외) 확장을 명시적으로 금지하지도 않았습니다. 실제로 원본 컨트롤의 소스 코드를 완전히 이해하고 제어할 수 없고 다시 작성해야 하는 모든 메서드를 잘 다시 작성할 수 있다면 상속을 사용하는 것은 실제로 매우 위험한 일이라는 것이 실제로 발견되었습니다. 예를 들어 원래 컨트롤의 표시 영역을 확장할 수 없는 문제가 발생했습니다. 안전한 방법은 합성을 사용하는 것입니다. 물론 이 기사의 예(책 65페이지)와 마찬가지로 원본을 결합하려는 경우에도 약간의 문제가 발생합니다. 컨트롤(예: "슈퍼클래스") HashSet의 공용 멤버가 여전히 노출된 경우 해당 멤버에 대한 getter 메서드를 하나씩 작성해야 합니다.