leafCount in the Derived Classes
class Leaf extends Tree
{
Object value;

Leaf(Object value)
  {
  this.value = value;
  }

int leafCount()
  {
  return 1;
  }
}
class Composite extends Tree
{
Tree left;
Tree right;

Composite(Tree left, Tree right)
  {
  this.left = left;
  this.right = right;
  }

int leafCount()
  {
  return left.leafCount() + right.leafCount();
  }
}