2012-11-10 7 views
0

보호 된 특성 높이가있는 하위 (확장) 클래스가 있습니다. 나는 메인 프로그램에 액세스하려면 : 내가 롤의 관목을 실행할 때하위 클래스 특성 오류

while(line != null) 
    { 
     String[] field = line.split("#"); 
     int height = Integer.parseInt(field[0]); 

     if (field.length ==1) 
     { 
      forest[cnt] = new Trees(height); 
     } 
     else 
     { 
      forest[cnt] = new Shrub(height, field[1]); 

     } 

     cnt++; 
     line = inS.readLine(); 

    } 
    inS.close(); 

    String s = JOptionPane.showInputDialog("Enter Name to search for"); 

    for(int i = 0; i<forest.length; i++) 
    { 

     if (forest[i] instanceof Shrub) 
     { 
      String a = forest[i].getName();  
      System.out.println ("Found"); 
     } 
    } 
    } 

나는 그것이 방법 대한 getName 찾을 수 없다는 오류가 발생하지만은, 그러나 그것은 잘 작동?

감사합니다.

+0

다음과 같이 문자를 입력 해보십시오 .String a = ((Shrub) forest [i]). getName();'. 이는'getName()'메소드가 부모 타입에 존재하지 않는다고 생각하기 때문입니다. 그러한 경우 컴파일러에게 명시 적으로 알려야합니다. –

답변

0

개인 액세스 수정 자 메서드는 자식 클래스에서 액세스 할 수 없습니다. 공개 또는 보호로 설정합니다.

+0

public String getName() { return name; } – user1712995

+0

공개이며, 그 속성은 보호되어 있습니다. – user1712995

+0

철자를 확인하십시오. –

관련 문제