Ссылочные статические методы / переменные в Java из экземпляра

Может кто-нибудь объяснить мне, почему Java позволяет вам получить доступ к статическим методам и членам из экземпляра? Плохой пример, если у меня есть объект с именем RedShape, и у него есть статический метод с именем getColor (), который возвращает "красный»Почему Java позволяет вам вызывать статический метод из экземпляра RedShape? Мне кажется, что это нарушает некоторые из основных концепций языкового дизайна. По крайней мере, он должен идти с предупреждением компилятора.

Заранее спасибо.

Редактировать:

В частности, яя спрашиваю о том, когда у вас есть что-то вроде

RedShape test = new RedShape();
test.getColor();

где getColor - статический метод класса RedShape. Это нене имеет никакого смысла, что эторазрешено и невыдает предупреждение компилятору в командной строке через javac. Я вижу, что это "сильно не рекомендуется, но было любопытно, была ли техническая или разумная причина, почемуразрешено внепотому что C ++ позволяет это. "

Ответы на вопрос(5)

Ваш ответ на вопрос