質問

I have next classes:

abstract public class Parent{
    static public void logRequestor(){
        //String requestor = // How to get requestor?
        //Log.e("Requestor is: " + requestor);
    }
}

class ChildA extends Parent{
}

class ChildB extends Parent{
}

Somewhere I have next lines:

ChildA.logRequestor();
ChildB.logRequestor();
ChildA.logRequestor();

How to know, which child are called static parent method with no params in function logRequestor? I want to have next logs:

Requestor is ChildA
Requestor is ChildB
Requestor is ChildA
役に立ちましたか?

解決 2

That is not possible, statics are defined in the class not in the instance therefore statics cannot be e.g. inherited und therefore cannot be used for polymorphism.

See this answer for more details: Why doesn't Java allow overriding of static methods?

他のヒント

Static methods are not inherited.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top