I was looking in capability of defining static methods in interfaces in Java8. I was kinda confused to see that static methods in interfaces are not inherited by the implementing classes or interfaces. Such thing not happens in case of static methods defined in class. We can easily inherit those methods. I couldn't found any legitimate reason for that on Oracle's documentation also. I found a link of stack overflow of same question but this also doesnt answer the question. Why are class static methods inherited but not interface static methods?. I couldn't understand the answer. As i don't have enough reputation to comment on answer so I am asking it here. Can some body explain last part of the answer on this link i.e.
"If I was to guess again, I'd say that with default the implementation is part of Cat's vtable. With static it cannot be. The main function must bind to something. At compile time Cat.identify could be replaced with Animal.identify by the compiler but the code wouldn't match reality if Cat was recompiled but not the class that contains main."