자바의 구조 함수에 대한 지식 상세
public class Test
{
public static void main(String args[])
{
B b = new B(100);
}
}
class A
{
public A()
{
System.out.println("A without any parameter");
}
public A(int i)
{
System.out.println("A with a parameter");
}
}
class B extends A
{
public B()
{
System.out.println("B without any parameter");
}
public B(int i)
{
System.out.println("B with a parameter");
}
}
이 예는 마지막으로 출력한 것은A without any parameter
B with a parameter
먼저 부류의 구조 함수를 호출한 다음에 자신의 구조 함수를 호출하는 것을 볼 수 있다.그러나 이곳의 B류에 파라미터가 있는 구조 함수는 슈퍼 부류가 없기 때문에 부류의 파라미터가 없는 구조 함수만 실행할 수 있다.매개변수가 있는 상위 클래스의 구조 함수를 실행하려면 다음과 같이 코드를 작성해야 합니다.
public class Test
{
public static void main(String args[])
{
B b = new B(100);
}
}
class A
{
public A()
{
System.out.println("A without any parameter");
}
public A(int i)
{
System.out.println("A with a parameter");
}
}
class B extends A
{
public B()
{
System.out.println("B without any parameter");
}
public B(int i)
{
super(i); //
System.out.println("B with a parameter");
}
}
그래서 마지막으로 출력하는 것은:A with a parameter
B with a parameter
따라서 파생류는 반드시 슈퍼를 통해 부류의 매개 변수를 포함하는 구조 함수를 호출해야 한다.다음 문제 추가
public class Test extends 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");
}
}
class Y
{
Y()
{
System.out.print("Y");
}
}
출력의 결과는 무엇입니까?우선 우리는 이 문제를 분석한다.
우선 이main 함수를 보면 이main 함수는 코드가 하나밖에 없기 때문이다: new Test ().이 Test 클래스가 X에서 계승된 것을 발견했기 때문에 먼저 X를 구성해야 한다. 그러면 X류의 운행 Yb=new Y()를 하고 우리는 출력된 Y를 볼 수 있다. 그 다음에 X류의 구조 함수를 실행하고 X를 출력한다.다음은 Y를 구성하고 Test 자체의 구조 함수를 실행하여 Z를 출력하기 때문에 출력 결과는 YXYZ입니다.
이상의 자바 구조 함수에 대한 지식의 상세한 설명은 바로 편집자가 여러분에게 공유한 모든 내용입니다. 여러분께 참고가 되고 저희를 많이 사랑해 주시기 바랍니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
38. Java의 Leetcode 솔루션텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.