Hello, developer, you wrote: D> In programming languages, for example, in Java, in addition to data types (class) are available also interfaces (interface). Why it is impossible to manage one only classes? After all there is a base class, there is the abstract class. For what it is necessary to enter interfaces still? Here that E.Troelsen in the book "writes the Programming language C# and the platform.Net 4.5" After chapter 6 learning the interface type can seem very similar to the abstract base class. Recall that when the class is marked as abstract, it can define any amount of the abstract members for provision of the polymorphic interface to all derived types. However even if the class really defines a dial-up of the abstract members, it also can define any amount of designers, data fields, not abstract members (with implementation), etc. On the other hand, interfaces can contain only determinations of the abstract members. The polymorphic interface installed by the abstract parent class, possesses one serious restriction: the members defined by the abstract parent class, are supported only by derived types. Nevertheless, in large program systems the numerous class hierarchies which do not have the general parent except for System are very often developed. Object. Considering that the abstract members in the abstract base class are applicable only to derived types, there is no method of adjustment of types in different hierarchies on support of the same polymorphic interface.