
20 Interfaces
20.1 Interface declarations
20.1.2 Base interfaces
Paragraph 11 An interface can inherit from zero or more interfaces, which are called the explicit base interfaces of the interface. 2 When an interface has one or more explicit base interfaces, then in the declaration of that interface, the interface identifier is followed by a colon and a comma-separated list of base interface identifiers. interface-base : : interface-type-list
Paragraph 21 The explicit base interfaces of an interface must be at least as accessible as the interface itself (§10.5.4). [Note: For example, it is a compile-time error to specify a private or internal interface in the interface-base of a public interface. end note]
Paragraph 31 It is a compile-time error for an interface to directly or indirectly inherit from itself.
Paragraph 41 The base interfaces of an interface are the explicit base interfaces and their base interfaces. 2 In other words, the set of base interfaces is the complete transitive closure of the explicit base interfaces, their explicit base interfaces, and so on. 3 An interface inherits all members of its base interfaces. [Example: In the example
interface IControl
{
void Paint();
}
interface ITextBox: IControl
{
void SetText(string text);
}
interface IListBox: IControl
{
void SetItems(string[] items);
}
interface IComboBox: ITextBox, IListBox {}
the base interfaces of IComboBox are IControl, ITextBox, and IListBox. In other words, the IComboBox interface above inherits members SetText and SetItems as well as Paint. end example]
Paragraph 51 A class or struct that implements an interface also implicitly implements all of the interface's base interfaces.
| |
| Jagger Software Ltd | |
| Company # 4070126 | |
| VAT # 762 5213 42 |