Protected Member



  • Ich habe eine Frage zu protected Member.

    Wenn ich in einer Kindklasse auf ein Member einer Vaterklasse des anderen Packages zugreife, wieso muss dieses immer static sein?

    Mir unverständlich.

    Hier das Beispiel:

    package a;
    
    public class AClass {	
    	protected static int y=99;
    //  Compilerwarnung:
    // 'Cannot make a static reference to the non-static field y'
    }
    
    package b;
    import a.AClass;
    
    public class AClass_in_b extends AClass
    {	
    	public static void main(String [] args)
    	{
    		//	protected Demonstration
    // y muss static sein (laut eines Javabuchs führt dies nicht zum Fehler)
                    System.out.println(y); 
    
    // Laut eines Javabuchs erzeugt dies Fehler
    		// AClass a = new AClass();     
    		// System.out.println(a.y);     
    		// System.out.println(AClass.y); 		
    	}
    }
    


  • Weil main static ist



  • Statische Funktionen können nur auf statische Variablen zugreifen. Das hat mit protected oder ähnlichem nichts zu tun.



  • Danke für den Tipp!!!

    Ich wäre nicht draufgekommen.


Anmelden zum Antworten