2014-04-18 51 views
1
import java.util.*; 

public abstract class Player { 
    abstract String nm; 
    public abstract void displayDetails(); 
} 

class Booking extends Player { 
nm = "Sam";   

    void displayDetails() { 
     System.out.println("Name is:" + nm); 
    } 
} 

//代碼產生錯誤:identifier expected nm =「sam」;錯誤:<identifier>期望nm =「Sam」;

+1

你有問題嗎? – csmckelvey

+2

在'java'中'abstract String'有效嗎? – GoldRoger

+0

我很抱歉我的那個錯誤... –

回答

0

在Java中,只能在塊內保留表達式。你不能在那裏保留nm = "Sam";,在實例初始化塊內移動它

import java.util.*; 

public abstract class Player { 
    String nm; // instance fields cant be declared as abstract 
    public abstract void displayDetails(); 
} 

class Booking extends Player { 
    { // instance initialization block 
     nm = "Sam"; 
    } 

    void displayDetails() { 
     System.out.println("Name is:" + name); 
    } 
} 
+1

謝謝一噸先生。這非常有幫助。 –

+0

雖然我很欣賞這個答案的技術正確性,但是如果你把這些代碼放在構造函數中而不是實例初始化塊中,整個世界會更好。 –

+0

@ChrisHayes:它甚至可以在實例初始化塊內部。你有什麼理由? –

相關問題