Variablen- und Methoden-Shadowing in Java

Grundsätzlich möchte ich wissen, warum eine statische Methode nicht durch eine Instanzmethode gespiegelt werden kann (ich weiß, warum dies unter bestimmten Umständen zu Mehrdeutigkeiten führt), wohingegen eine statische Variable durch eine Instanzvariable gespiegelt werden kann (dies gilt nur für Unterklassen) ).

Beispiel:

public class Apartment{

    static int area = 10;

    public static int getArea(){
        return area;
    }
}

class BedroomFlat extends Apartment {

    int area = 10;// no problem at all 

    public int getArea(){ // illegal line it cannot hide the super static method
        return area;
    }
}

Also, wenn ich versucht habe zu erklärenint area (Instanzvariable) zusammen mit derstatic int area in der Superklasse würde es einen Fehler geben, aber es kommt nicht vor, wenn es in der Unterklasse deklariert wird, obwohl dasstatic int area ist noch von der Unterklasse sichtbar.

Was genau ist der Unterschied im Verhalten zwischen dem Versuch, eine statische Methode mit einer Instanzmethode zu spiegeln, und dem Versuch, eine statische Variable mit einer Instanzvariablen zu spiegeln?

Danke im Voraus.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage