RosettaCodeData/Task/Polymorphic-copy/Groovy/polymorphic-copy-1.groovy

15 lines
348 B
Groovy

class T implements Cloneable {
String property
String name() { 'T' }
T copy() {
try { super.clone() }
catch(CloneNotSupportedException e) { null }
}
@Override
boolean equals(that) { this.name() == that?.name() && this.property == that?.property }
}
class S extends T {
@Override String name() { 'S' }
}