>

jdk-8u111의 LinkedList.java에 대해 아래에 쓴 내용이 맞습니까?

와이즈 비즈 와이즈 비즈

     

생성자에 코드가없고 목적이   이러한 이상한 생성자는 이후의 서브 클래스를위한 것입니다. 우리가 알다시피   컴파일러는 인수없는

를 자동으로 제공합니다.
 에
  생성자가 명시적인 
/**
 * Constructs an empty list.
 */
public LinkedList() {
}
가없는 경우 서브 클래스 생성자
  요구. 부모 클래스에 이러한 클래스가 없으면 컴파일러에서 오류를보고합니다.
  인수가없는 생성자.

super()

     

super() 의 빈 생성자  하위 클래스 사용입니다.

Error:(x, y) java: no suitable constructor found for parent class(no arguments)
  • 답변 # 1

    아니요, 서브 클래스와는 아무 상관이 없습니다.

    생성자를 정의하지 않으면 Java가 자동으로 기본 생성자를 추가합니다. 그러나 다른 생성자를 정의하면 기본 생성자를 작성해야합니다. 이 생성자가 존재하기 때문에 :

    LinkedList(Collection<? extends E> c);
    
    

    기본 생성자는 다음과 같이 명시 적으로 정의해야합니다 :

    LinkedList();
    
    

    <시간> 와이즈 비즈

    생성자가 없으면 기본 생성자가 추가되고

    It works and has no error if I do not write out an explicit empty default constructor. The compiler executes successfully. So it is okay not to write it out? What is the need to write it out if we already have another constructor?

    를 성공적으로 호출 할 수 있습니다 :

    new Thing()
    
    

    기본이 아닌 생성자가 추가되면 Java는 더 이상 기본 생성자를 추가하지 않습니다. 이제 class Thing { } Thing t = new Thing();  오류입니다.

    new Thing()
    
    

    결과 :

    class Thing {
        public Thing(int foo) { }
    }
    Thing t = new Thing();
    
    

    코드를 컴파일하기위한 기본 생성자를 작성해야합니다 :

    Test.java:7: error: constructor Thing in class Thing cannot be applied to given types;
            Thing t = new Thing();
                      ^
      required: int
      found: no arguments
      reason: actual and formal argument lists differ in length
    1 error
    
    

    class Thing { public Thing() { } public Thing(int foo) { } } Thing t = new Thing();

  • 이전 asp.net core - 기존 Razor Pages 앱에 Web Api 권한 추가
  • 다음 ruby on rails - API를 만들 때 업데이트 기능에서 한 방향으로 매개 변수 변경