public envelope() { }
public void message() {
System.out.println("hello ... ");
}
};
public letter() { }
public void message() {
System.out.println("Message in a letter");
}
};
require ( arg >= 0 );
double r=arg, x=1, eps=0.0001;
while( fabs(r - x) > eps ) {
r=x; x=r-((r*r-arg)/(2*r));
}
promise ( r - arg * arg <= eps );
return r;
}
Abstract data types must be indistinguishable from built-in types