2017-08-04 109 views
-2

不知道爲什麼,但我得到了第一個大括號的語法錯誤,它說我需要在第一個變量聲明後添加一個大括號。不知道爲什麼我得到這個語法錯誤

public class DogNeeds extends PetNeeds { 
    super.setAnimalType("dog"); //This method is inherited from PetNeeds superclass 
    protected boolean walk; 

    public DogNeeds(String name) { 
     super(name); 
     // TODO Auto-generated constructor stub 
    } 

    boolean getWalk() { 
     return walk; 
    } 

    void setWalk(boolean walk) { 
     this.walk = walk; 
    } 

    public void walkDog() { 
     if(walk) { 
      System.out.println("Time to walk " + super.getName()); 
     } 
     else { 
      System.out.println(super.getName() + " doesn't need to go out yet."); 
     } 
    } 
} 
+2

在方法中放置'super.setAnimalType'語句 – Reimeus

+6

在方法,構造函數或初始化程序塊之外不能有像'super.setAnimalType(「dog」)''這樣的行。 –

回答

1

這條線:

super.setAnimalType("dog"); //This method is inherited from PetNeeds superclass 

必須是一個方法或構造內部。

1

super.setAnimalType("dog")不能在方法之外。您可以將其添加到任何方法或重寫方法。例如:

public class DogNeeds extends PetNeeds { 

    protected boolean walk; 

    public DogNeeds(String name) { 
    super(name); 
    // TODO Auto-generated constructor stub 
    } 

    void setAnimalType(String animal) { 
    super.setAnimalType(animal); 
    } 

    boolean getWalk() { 
    return walk; 
    } 

void setWalk(boolean walk) { 
    this.walk = walk; 
} 

public void walkDog() { 
    if(walk) { 
     System.out.println("Time to walk " + super.getName()); 
    } 
    else { 
     System.out.println(super.getName() + " doesn't need to go out 
     yet."); 
    } 
    } 
} 
1

super.setAnimalType("dog"); 當你調用這樣的方法,它應該走自己的方法內。由於它不是任何類型的聲明,因此應該在函數/方法的某個地方執行。

P.S.我今天早上實際上犯了一個類似的錯誤,很傻。