[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends-ml 1781] super.clone() 呼ぶ実装



立見@沼津です。

●宿題の残件のsuper.clone()

java.util.Vectorのソースを見てみてください。
super.clone()をしっかりつかっていますね!

super.clone()を使ったほうがソース量を減らせる=バグを減らせる。
ので、newして、いちいち全部代入する使い方はやはりおすすめできない
実装だと思います。

Objectクラスのcloneメソッドはnative methodですし、どんな実装に
なっているか分かりませんが、いちいち全部代入するよりか、
実行速度が劣るって事もなさそうだし。(推測だが)

javaの格言には、どのような記述がされているのでしょうか。
本が手元にないので、今度立ち読みでもしたいです。


●第8章、何故createCloneというメソッド名にしたか
Object   protected clone()
     △
     | 
Vector   public clone() 
     △
     | 
MyVector public clone()

MyVector でsuper.clone()を呼んだ時にVectorクラスのclone()を
呼んでしまうようになる。Objectクラスのclone()を使って
MyVectorのcloneを実装したい場合には、cloneとは別名にしたほうが
いいから??

super.super.clone()でObjectクラスのclone()は呼び出せない(文法エラー)
呼び出す方法ってjavaでありましたっけ?


-----------------------------------------------------------
Tetsuya Tatsumi       Email   tetutetu@xxxxxxxxxxxxx
           WWW     http://isweb35.infoseek.co.jp/business/butainu/