from page 10
An abstract class with no non-abstract methods is similar to an interface in terms of its utility. However, note the following:
A class can implement any number of interfaces, but can subclass at most one abstract class.
An abstract class can have non-abstract methods; all the methods of an interface are effectively abstract.
An abstract class can declare and use variables; an interface cannot.
An abstract class can have methods whose access is
protected internal, or
private. Interface members implicitly have
public access, and no access modifiers (including
public) are allowed on interface member declarations.
An abstract class can define constructors; ...
Get Design Patterns in C# now with O’Reilly online learning.
O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.