Java의 생성자는 매우 중요한 역할입니다. 우선, Java의 생성자는 과부하 될 수 있으며, 부모 클래스의 생성자로부터 상속 될 수 있기 때문에 서브 클래스에서 가장 먼저는 부모 클래스의 생성자를 호출하는 것입니다. 다음 두 가지 예와 비교할 수 있습니다.
공개 클래스 테스트 {public static void main (String args []) {b b = new b (100); }} class a {public a () {system.out.println ( "매개 변수없는 A"); } public a (int i) {system.out.println ( "매개 변수와 함께"); }} 클래스 B는 A {public b () {system.out.println ( "매개 변수가없는 B")을 확장합니다. } public b (int i) {system.out.println ( "매개 변수가있는 b"); }}이 예제의 최종 출력은 다음과 같습니다
A 매개 변수가없는 A
b 매개 변수가있는 b
당신이 호출하는 첫 번째 것은 부모 클래스의 생성자라는 것을 알 수 있으며, 자체 생성자가 호출됩니다. 그러나 여기서 클래스 B에 매개 변수가있는 생성자는 슈퍼 상위 클래스가 없기 때문에 부모 클래스의 매개 변수없이 생성자 만 실행합니다. 매개 변수로 상위 클래스의 생성자를 실행하려면 다음과 같은 코드를 작성해야합니다.
공개 클래스 테스트 {public static void main (String args []) {b b = new b (100); }} class a {public a () {system.out.println ( "매개 변수없는 A"); } public a (int i) {system.out.println ( "매개 변수와 함께"); }} 클래스 B는 A {public b () {system.out.println ( "매개 변수가없는 B")을 확장합니다. } public b (int i) {super (i); // 이것은 매개 변수 생성자 System.out.println ( "매개 변수가있는 b")입니다. }}그래서 최종 출력은 다음과 같습니다.
A 매개 변수와 함께
b 매개 변수가있는 b
따라서 파생 클래스는 Super를 사용하여 부모 클래스의 매개 변수를 포함하는 생성자를 호출해야합니다. 다음은 또 다른 질문입니다.
공개 클래스 테스트는 x {y y = new y (); test () {system.out.print ( "z"); } public static void main (String args []) {new test (); }} class x {y b = new y (); x () {system.out.print ( "x"); }} 클래스 y {y () {system.out.print ( "y"); }}출력 결과는 무엇입니까?
먼저이 질문을 분석하겠습니다.
이 주요 함수를 먼저 살펴보기 때문에이 주요 기능에 대한 코드 문장은 단 하나뿐입니다 : new test (); 이 테스트 클래스가 X에서 상속되는 것을 발견했기 때문에 먼저 X를 구성해야하므로 x 클래스 y b = new y ()를 실행 한 다음 출력 y를보고 x 클래스 x 및 출력 x의 생성자를 실행할 수 있습니다. 그런 다음 y를 구성한 다음 테스트의 자체 생성기 인 출력 z를 실행하여 출력 결과가 YXYZ입니다.
Java의 생성자에 대한 몇 가지 지식에 대한 위의 자세한 설명은 내가 공유하는 모든 내용입니다. 나는 당신이 당신에게 참조를 줄 수 있기를 바랍니다. 그리고 당신이 wulin.com을 더 지원할 수 있기를 바랍니다.