以下の方法で何か方法はないかと考えております。抽象クラスShapeとそのすべての異なるサブクラスがあり、クローン メソッドをオーバーライドしたいと考えています。このメソッドでやりたいことは、現在のメソッドShapeから新しいメソッドを作成することtoString()だけです。Shape明らかに、抽象的であるため、次のことはできません。単純な名前の変更のためだけにすべてのサブクラスでクローンをオーバーライドすることは役に立たないように見えるため、これを行う別の方法はありますか?
public abstract class Shape {
public Shape(String str) {
// Create object from string representation
}
public Shape clone() {
// Need new way to do this
return new Shape(this.toString());
}
public String toString() {
// Correctly overriden toString()
}
}