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