[1269] >774RRさん
投稿者:SE
2009/05/19 15:22:44
>あえて言わせていただくと、提示例はやっちゃダメな「実装継承」の典型例であって
>俺の後輩君がこんなコードかいてたら0点つけるですよ。
大文字変換は何かしらの処理の例として出したので、getで何かの処理を行った結果を返すと考えてください。
>これは、実体が Stack であるインスタンスに対して UpperStack にダウンキャストして使う、としか読めない。
>そんな危険なことをさせるわけにはいかないと思うのだが。
ダウンキャストでなく、newするときに新しいクラスを使うと考えてください。
---------------------------------------------------------------------
Stack st = new Stack();
st.put("aa");
st.put("bb");
st.put("cc");
System.out.println(st.get());
System.out.println(st.get());
System.out.println(st.get());
---------------------------------------------------------------------
これを次のように変更します。1行で済みます。
---------------------------------------------------------------------
UpperStack st = new UpperStack();
st.put("aa");
st.put("bb");
st.put("cc");
System.out.println(st.get());
System.out.println(st.get());
System.out.println(st.get());
---------------------------------------------------------------------