今日の役に立たない一言 - Today’s Trifle! -

古い記事ではさまざまなテーマを書いていますが、2007年以降はプログラミング関連の話がほとんどです。

継承できないクラス

final 宣言されていないクラスを継承しようとしたらコンパイルエラーになった。コンパイルエラーのメッセージは、コンストラクタが「(スーパークラス) で private アクセスされます。」だそうな。
スーパークラスは static メソッドばかりのユーティリティクラス。例えば java.lang.Math や java.sql.DriverManager、java.util.Arrays などもそういう役割のクラス。そういうクラスに static なユーティリティメソッドを追加したい場合は、継承したうえで static メソッドを追加するのが自然な気がするけど。もちろん、インスタンスを生成する必要なんてないんだし。
そういうクラスを継承できるようにしてくれればいいのに。コンストラクタやインスタンス変数、インスタンスメソッドが定義されてたらコンパイルエラーにすればいいと思う。