RosettaCodeData/Task/Polymorphic-copy/D/polymorphic-copy-1.d

20 lines
375 B
D
Raw Permalink Normal View History

2023-07-01 11:58:00 -04:00
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);
}