nit  do we need this definition  this is an abstract class  so it will not ever be instantiated  any subclass will almost certainly want to override this to provide more useful information  hence  this version of str will not ever be used  finally  assuming a subclass does not override this  the default  fooclass object at  x provides more information  returning just the class name gives no information about the instance 