Abstract classes can contain code - in other words, not all its methods
need to be abstract. A class can implement multiple interfaces, but
only derive from one class, which may be abstract. Abstract classes can
also contain fields etc - interfaces can (IIRC) only contain method and
property declarations.