2011-04-01 6 views
1

Java에서 가상 생성자를 호출하는 용어가 있습니까? 그렇다면이 코드를 사용해야 할 곳은 어디입니까?Java에 가상 생성자가 있습니까?

+2

또한 질문과 답이 여기 http://www.coderanch.com/t/532258/java/java/there-any-Virtual- 생성자 -Java –

답변

3

"가상 생성자"가 무슨 뜻인지 잘 모르겠습니다. 생성자는 클래스 계층을 재귀 적으로 호출합니다. 모든 생성자는 슈퍼 클래스 생성자를 먼저 호출해야합니다. (인수가없는 생성자의 경우 호출을 생략 할 수 있습니다.이 경우 컴파일러에서 자동으로 삽입합니다.)

이외에도 Java에는 가상 메소드가 없습니다. 또는 더 정확하게는 모든 인스턴스 메소드가 가상입니다 (C++ 의미에서).

0

가상 생성자 란 무엇입니까? C++의 가상 함수와 같은 경우 java에 가상 생성자가 없습니다.

0

아니요. 저는 잘 알고 있습니다. "Default Constructor"예. 델파이에는 가상 생성자가 있지만 대부분의 다른 언어에서는 그렇지 않습니다. Factory Pattern을 참조하십시오.

4

가상 생성자는 자바 언어의 일부가 아니지만 용어는 (많은 new ClassName(object) 경우처럼 새로운 객체를 생성합니다 지원하는 개체에 object.clone()를 호출, 몇 가지 디자인 패턴 예를 들어

에 적용 할 수 복사 생성자가 있으므로 생성자와 유사하지만 다형성을가집니다. "Effective Java"에서 Joshua Bloch는 특정 상황에서 다형성 객체 생성을 달성하는 또 다른 방법으로 Static Factory 메소드를 사용하는 것을지지합니다. 에서 C++ 상황에 맞는 모양에서 용어의 사용에 대한

: http://www.parashift.com/c++-faq-lite/virtual-functions.html#faq-20.8

관련 문제