자바의 구조 함수에 대한 지식 상세

2631 단어 java구조 함수
자바의 구조 함수는 매우 중요한 작용이다. 우선 자바의 구조 함수는 다시 불러올 수 있고 부류의 구조 함수도 계승할 수 있기 때문에 부류에서 먼저 부류의 구조 함수를 호출해야 한다.다음 두 가지 예를 비교해 볼 수 있습니다.

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입니다.
이상의 자바 구조 함수에 대한 지식의 상세한 설명은 바로 편집자가 여러분에게 공유한 모든 내용입니다. 여러분께 참고가 되고 저희를 많이 사랑해 주시기 바랍니다.

좋은 웹페이지 즐겨찾기