Javaでインスタンスから静的メソッドとメンバーにアクセスできる理由を誰かに説明してもらえますか?悪い例ですが、RedShapeというクラスがあり、「red」を返すgetColor()という静的メソッドがある場合、JavaでRedShapeのインスタンスから静的メソッドを呼び出せるのはなぜですか?私には、これはオブジェクト指向言語設計のコアコンセプトのいくつかに違反しているように見えます。少なくとも、コンパイラの警告が表示されるはずです。
前もって感謝します。
編集:
特に、私はあなたが次のようなものを持っているときについて尋ねています
RedShape test = new RedShape();
test.getColor();
ここで、getColorはRedShapeクラスの静的メソッドです。これは許可されていることには意味がなく、javacを介してコマンドラインでコンパイラに警告を表示しません。「強くお勧めできません」と思いますが、「C ++で許可されているため」以外で許可されている理由の背後に、技術的または合理的な理由があるかどうかに興味がありました。