RosettaCodeData/Task/Polymorphic-copy/D/polymorphic-copy-1.d
2023-07-01 13:44:08 -04:00

19 lines
375 B
D

class T {
override string toString() { return "I'm the instance of T"; }
T duplicate() { return new T; }
}
class S : T {
override string toString() { return "I'm the instance of S"; }
override T duplicate() { return new S; }
}
void main () {
import std.stdio;
T orig = new S;
T copy = orig.duplicate();
writeln(orig);
writeln(copy);
}