암시 적 슈퍼 생성자 Num ()은 기본 생성자에 대해 정의되지 않습니다. 명시 적 생성자를 정의해야합니다.이 뒤에 논리는 무엇입니까?

Tilak raj
class Num 
{
    Num(double x) 
    { 
        System.out.println( x ) ; 
    }
}
class Number extends Num 
{ 
    public static void main(String[] args)
    { 
        Num num = new Num(2) ; 
    } 
} 

위의 프로그램에서는 오류가 표시됩니다. 제발 도와주세요.

쿠마르 아비 나프

자체 생성자를 정의 할 때 컴파일러는 인수가없는 생성자를 제공하지 않습니다. 생성자가없는 클래스를 정의하면 컴파일러는 super ()를 호출하여 인수가없는 생성자를 삽입합니다.

class Example{
}

된다

class Example{

Example(){
super();   // an accessible no-arg constructor must be present for the class to compile.
}

그러나 Number 클래스는 Num 클래스에 대한 인수가없는 생성자를 찾을 수 없기 때문에 클래스의 경우가 아닙니다. 슈퍼 생성자 중 하나를 호출하여 생성자를 명시 적으로 정의해야합니다.

해결책:-

class Num 
{
    Num(double x) 
    { 
        System.out.println( x ) ; 
    }
}

class Number extends Num 
{ 


 Number(double x){
 super(x);
 }

 public static void main(String[] args)
    { 
        Num num = new Num(2) ; 
    } 
} 

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관