. NET Interface Learning Notes

Source: Internet
Author: User
<span id="Label3"></p>1. Declaration of the interface<p><p>The declaration of an interface cannot contain: a data member, a static variable, or a declaration of a static member function that can contain only the following types: methods, properties, events, indexers. The declaration cannot contain any implementation code, and a semicolon must be used after each member of the body that is famous.</p></p><p><p>An interface declaration can have any modifier public, protect, internl, or Private.</p></p><p><p>The members of the interface are implicitly public and do not allow any access modifiers, including Public.</p></p><pre><pre><span style="color: #008080;">1</span> public <span style="color: #000000;">Interface IMyInterface</span> <span style="color: #008080;">2</span> <span style="color: #000000;">{</span><span style="color: #008080;">3</span> <span style="color: #008000;">//</span> <span style="color: #008000;">interface members are implicitly public, and only the declaration</span> <span style="color: #008080;">4</span> <span style="color: #0000ff;">int</span> METHOD1 (<span style="color: #0000ff;">int</span> nVar1,<span style="color: #0000ff;">int</span> <span style="color: #000000;"> nVar2); </span><span style="color: #008080;">5</span> }</pre></pre>2. Implementation of the interface<p><p>Only classes and structs can implement interfaces, and interface names must be included in the base class list; the class or struct that uses the interface needs to provide an implementation for each member of the INTERFACE.</p></p><pre><span style="color: #008080;"><span style="color: #008080;">1</span></span> <span style="color: #000000;"><span style="color: #000000;">Class Myclass:imyinterface</span></span><span style="color: #008080;"><span style="color: #008080;">2</span></span> <span style="color: #000000;"><span style="color: #000000;">{</span></span><span style="color: #008080;"><span style="color: #008080;">3</span></span> <span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;">the <span style="color: #008000;">access modifier is set to public when the interface member is implicitly implemented</span></span><span style="color: #008080;"><span style="color: #008080;">4</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;"></span> public</span> <span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span>Method (<span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span>A<span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span><span style="color: #000000;"><span style="color: #000000;">B)</span></span><span style="color: #008080;"><span style="color: #008080;">5</span></span> <span style="color: #000000;"><span style="color: #000000;"> {</span></span><span style="color: #008080;"><span style="color: #008080;">6</span></span>Console.WriteLine (<span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #800000;"><span style="color: #800000;">{0}</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>, A +<span style="color: #000000;"><span style="color: #000000;">b);</span></span><span style="color: #008080;"><span style="color: #008080;">7</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">return</span></span>A +<span style="color: #000000;"><span style="color: #000000;">b;</span></span><span style="color: #008080;"><span style="color: #008080;">8</span></span> <span style="color: #000000;"><span style="color: #000000;"> }</span></span><span style="color: #008080;"><span style="color: #008080;">9</span></span>}</pre><p><p>If a class inherits the base class and implements the interface, the base class name in the base class list of the class must precede all the Interfaces. And a class can have only one base class, the other types listed must all be interface Names.</p></p><p><p>An interface is not just a list of members that a class or struct implements, it is a reference type, and we cannot access the interface directly through the members of the class object, but we can obtain a reference to the interface by casting the class object reference to the interface Type. This allows us to invoke the method of the interface using the dot Number. Here the conversion is recommended with AS.</p></p><pre><span style="color: #008080;"><span style="color: #008080;">1</span></span>Static<span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span>Main (<span style="color: #0000ff;"><span style="color: #0000ff;">string</span></span><span style="color: #000000;"><span style="color: #000000;">[] Args)</span></span><span style="color: #008080;"><span style="color: #008080;">2</span></span> <span style="color: #000000;"><span style="color: #000000;">{</span></span><span style="color: #008080;"><span style="color: #008080;">3</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span>A =<span style="color: #800080;"><span style="color: #800080;">5</span></span><span style="color: #000000;"><span style="color: #000000;">;</span></span><span style="color: #008080;"><span style="color: #008080;">4</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span>b =<span style="color: #800080;"><span style="color: #800080;">8</span></span><span style="color: #000000;"><span style="color: #000000;">;</span></span><span style="color: #008080;"><span style="color: #008080;">5</span></span>MyClass MC =<span style="color: #0000ff;"><span style="color: #0000ff;">New</span></span><span style="color: #000000;"><span style="color: #000000;">MyClass ();</span></span><span style="color: #008080;"><span style="color: #008080;">6</span></span> <span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">how to invoke class object implementation</span></span><span style="color: #008080;"><span style="color: #008080;">7</span></span> <span style="color: #000000;"><span style="color: #000000;">Mc. Method (a, b);</span></span><span style="color: #008080;"><span style="color: #008080;">8</span></span> <span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">converting a type to an interface type</span></span><span style="color: #008080;"><span style="color: #008080;">9</span></span>IMyInterface MIF = MC<span style="color: #0000ff;"><span style="color: #0000ff;"></span> as</span><span style="color: #000000;"><span style="color: #000000;">imyinterface;</span></span><span style="color: #008080;"><span style="color: #008080;">Ten</span></span> <span style="color: #000000;"><span style="color: #000000;">Mif. Method (a, b); </span></span><span style="color: #008080;"><span style="color: #008080;"></span> one</span>}</pre><p><p>Output Results: 13</p></p><p><p>13</p></p><p><p><span style="font-family: SimSun;" lang="zh-CN">the benefit of using as <span style="font-family: Calibri;" lang="en-US"> <span style="font-family: SimSun;" lang="zh-CN">for Casting: If a class implements an interface it returns an interface reference (safe)</span> </span> </span> If the class does not implement an interface, it throws an exception, making it easy to find errors in a timely manner.</p></p>3. Implement multiple interfaces<p><p>A class or struct can implement any number of Interfaces.</p></p><p><p>All implemented interfaces must be listed in the base class list and separated by Commas.</p></p><p><p>If a class implements two interfaces with duplicate members (with the same signature and the same return type), when the class implements the interface member, the implementation can satisfy all interfaces that contain duplicate members at ONCE.</p></p><pre><span style="color: #008080;"><span style="color: #008080;">1</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">Interface</span></span>Interface1 {<span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span>Method (<span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span>A<span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span><span style="color: #000000;"><span style="color: #000000;">b);}</span></span><span style="color: #008080;"><span style="color: #008080;">2</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">Interface</span></span>Interface2 {<span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span>Method (<span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span>A<span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span><span style="color: #000000;"><span style="color: #000000;">b);}</span></span><span style="color: #008080;"><span style="color: #008080;">3</span></span> <span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">implement multiple interfaces separated by commas</span></span><span style="color: #008080;"><span style="color: #008080;">4</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;"></span> public</span> <span style="color: #0000ff;"><span style="color: #0000ff;">class</span></span><span style="color: #000000;"><span style="color: #000000;">myclass:interface1, Interface2</span></span><span style="color: #008080;"><span style="color: #008080;">5</span></span> <span style="color: #000000;"><span style="color: #000000;"> {</span></span><span style="color: #008080;"><span style="color: #008080;">6</span></span> <span style="color: #008000;"><span style="color: #008000;">/*</span></span><span style="color: #008080;"><span style="color: #008080;">7</span></span> <span style="color: #008000;"><span style="color: #008000;">* If the return type and parameters of the two interface member functions are identical,</span></span><span style="color: #008080;"><span style="color: #008080;">8</span></span> <span style="color: #008000;"><span style="color: #008000;">* Then we can do it once.</span></span><span style="color: #008080;"><span style="color: #008080;">9</span></span> <span style="color: #008000;"><span style="color: #008000;">*/</span></span><span style="color: #008080;"><span style="color: #008080;">Ten</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;"></span> public</span> <span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span>Method (<span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span>A<span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span><span style="color: #000000;"><span style="color: #000000;">B)</span></span><span style="color: #008080;"><span style="color: #008080;"></span> one</span> <span style="color: #000000;"><span style="color: #000000;"> {</span></span><span style="color: #008080;"><span style="color: #008080;"></span> a</span>Console.WriteLine (<span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #800000;"><span style="color: #800000;">{0}</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>, A +<span style="color: #000000;"><span style="color: #000000;">b);</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #000000;"><span style="color: #000000;"> }</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span>}</pre><p><p><span lang="zh-CN">If you want to deliberately detach the interface members of both interfaces, you need to create an explicit interface member member Implementation. Format: Interface name <span lang="en-US">+ <span lang="zh-CN">dot delimiter <span lang="en-US">+ <span lang="zh-CN">member function of the INTERFACE. Note: when the calling interface member is displayed, the default is public and no more access modifiers can be Added. </span></span></span></span></span></p></p><pre><span style="color: #008080;"><span style="color: #008080;">1</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">Interface</span></span>Interface1 {<span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span>Method (<span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span>A<span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span><span style="color: #000000;"><span style="color: #000000;">b);}</span></span><span style="color: #008080;"><span style="color: #008080;">2</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">Interface</span></span>Interface2 {<span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span>Method (<span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span>A<span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span><span style="color: #000000;"><span style="color: #000000;">b);}</span></span><span style="color: #008080;"><span style="color: #008080;">3</span></span> <span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">implement multiple interfaces separated by commas</span></span><span style="color: #008080;"><span style="color: #008080;">4</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;"></span> public</span> <span style="color: #0000ff;"><span style="color: #0000ff;">class</span></span><span style="color: #000000;"><span style="color: #000000;">myclass:interface1, Interface2</span></span><span style="color: #008080;"><span style="color: #008080;">5</span></span> <span style="color: #000000;"><span style="color: #000000;"> {</span></span><span style="color: #008080;"><span style="color: #008080;">6</span></span> <span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">interface members that display the implementation Interface1</span></span><span style="color: #008080;"><span style="color: #008080;">7</span></span> <span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">already default to public, you cannot add an access modifier</span></span><span style="color: #008080;"><span style="color: #008080;">8</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span>interface1. Method (<span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span>A<span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span><span style="color: #000000;"><span style="color: #000000;">B)</span></span><span style="color: #008080;"><span style="color: #008080;">9</span></span> <span style="color: #000000;"><span style="color: #000000;"> {</span></span><span style="color: #008080;"><span style="color: #008080;">Ten</span></span>Console.WriteLine (<span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #800000;"><span style="color: #800000;">{0}</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>, A +<span style="color: #000000;"><span style="color: #000000;">b);</span></span><span style="color: #008080;"><span style="color: #008080;"></span> one</span> <span style="color: #000000;"><span style="color: #000000;"> }</span></span><span style="color: #008080;"><span style="color: #008080;"></span> a</span> <span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span>interface2. Method (<span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span>A<span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span><span style="color: #000000;"><span style="color: #000000;">B)</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #000000;"><span style="color: #000000;"> {</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span>Console.WriteLine (<span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #800000;"><span style="color: #800000;">{0}</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>, A +<span style="color: #000000;"><span style="color: #000000;">b);</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span> <span style="color: #000000;"><span style="color: #000000;"> }</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span>}</pre><p><p><span style="font-family: Microsoft YaHei;">however, there is only an explicit interface member implementation, and there is no class-level implementation, so after instantiating the object of the class, it is not possible to point out the Method. If there is an explicit interface member implementation, the Class-level implementation is allowed, but is not required. and explicit interface member implementations are intelligently accessed through references to interfaces, even member functions within the class to access the members of the Interface.</span></p></p><p><p><span style="font-family: Microsoft YaHei;">If a class implements an interface, its subclasses inherit the interface members of its base class implementation without having to implement it again.</span></p></p>4. Inheritance of interfaces<p><p><span style="font-family: Microsoft YaHei;">To specify an interface to inherit from another interface, place the interface in a comma-delimited list of interfaces after the interface name in the interface Declaration. The same as the inheritance format of the class. however, Unlike classes, an interface can inherit any number of interfaces and can perform multiple inheritance. A sub-interface includes all interface members of all parent interfaces in addition to the interface that contains its own Declaration.</span></p></p>5. Code Demo<pre><span style="color: #008080;"><span style="color: #008080;">1</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">namespace</span></span><span style="color: #000000;"><span style="color: #000000;">ConsoleApplication2</span></span><span style="color: #008080;"><span style="color: #008080;">2</span></span> <span style="color: #000000;"><span style="color: #000000;">{</span></span><span style="color: #008080;"><span style="color: #008080;">3</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">Interface</span></span>Iloveworld {<span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span><span style="color: #000000;"><span style="color: #000000;">SayHello ();}</span></span><span style="color: #008080;"><span style="color: #008080;">4</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">class</span></span><span style="color: #000000;"><span style="color: #000000;">creature{}</span></span><span style="color: #008080;"><span style="color: #008080;">5</span></span> <span style="color: #008080;"><span style="color: #008080;">6</span></span> <span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">when the base class and interface are implemented at the same time, the base class is placed at the front</span></span><span style="color: #008080;"><span style="color: #008080;">7</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">class</span></span><span style="color: #000000;"><span style="color: #000000;">Person:creature,iloveworld</span></span><span style="color: #008080;"><span style="color: #008080;">8</span></span> <span style="color: #000000;"><span style="color: #000000;"> {</span></span><span style="color: #008080;"><span style="color: #008080;">9</span></span> <span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;">an <span style="color: #008000;">implicit declaration interface that can be accessed by both the object of the class and the object that can be converted to an interface reference</span></span><span style="color: #008080;"><span style="color: #008080;">Ten</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span><span style="color: #000000;"><span style="color: #000000;">SayHello ()</span></span><span style="color: #008080;"><span style="color: #008080;"></span> one</span> <span style="color: #000000;"><span style="color: #000000;"> {</span></span><span style="color: #008080;"><span style="color: #008080;"></span> a</span>Console.WriteLine (<span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #800000;"><span style="color: #800000;">Hello world!</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #000000;"><span style="color: #000000;">);</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #000000;"><span style="color: #000000;"> }</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">explicitly declares an interface member that can only be converted to an interface reference object to access</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span> <span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span><span style="color: #000000;"><span style="color: #000000;">Iloveworld.sayhello ()</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #000000;"><span style="color: #000000;"> {</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span>Console.WriteLine (<span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #800000;"><span style="color: #800000;">Hello world!</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #000000;"><span style="color: #000000;">);</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #000000;"><span style="color: #000000;"> }</span></span><span style="color: #008080;"><span style="color: #008080;"></span> +</span> <span style="color: #000000;"><span style="color: #000000;"> }</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #0000ff;"><span style="color: #0000ff;">class</span></span><span style="color: #000000;"><span style="color: #000000;">cat:creature, Iloveworld</span></span><span style="color: #008080;"><span style="color: #008080;"></span> +</span> <span style="color: #000000;"><span style="color: #000000;"> {</span></span><span style="color: #008080;"><span style="color: #008080;"></span> a</span> <span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">relative to an explicit interface Implementation. Class-level interface implementations are not Required. </span></span><span style="color: #008080;"><span style="color: #008080;"></span> at</span> <span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span><span style="color: #000000;"><span style="color: #000000;">Iloveworld.sayhello ()</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #000000;"><span style="color: #000000;"> {</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span>Console.WriteLine (<span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #800000;"><span style="color: #800000;">Miaomiaomiao</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #000000;"><span style="color: #000000;">);</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #000000;"><span style="color: #000000;"> }</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #000000;"><span style="color: #000000;"> }</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #0000ff;"><span style="color: #0000ff;">class</span></span><span style="color: #000000;"><span style="color: #000000;">dog:creature, Iloveworld</span></span><span style="color: #008080;"><span style="color: #008080;"></span> in</span> <span style="color: #000000;"><span style="color: #000000;"> {</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">cannot use public when explicitly invoking an interface member</span></span><span style="color: #008080;"><span style="color: #008080;"></span> to</span> <span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span><span style="color: #000000;"><span style="color: #000000;">Iloveworld.sayhello ()</span></span><span style="color: #008080;"><span style="color: #008080;"></span> +</span> <span style="color: #000000;"><span style="color: #000000;"> {</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span>Console.WriteLine (<span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #800000;"><span style="color: #800000;">Wangwangwang</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #000000;"><span style="color: #000000;">);</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span> <span style="color: #000000;"><span style="color: #000000;"> }</span></span><span style="color: #008080;"><span style="color: #008080;"></span> *</span> <span style="color: #000000;"><span style="color: #000000;"> }</span></span><span style="color: #008080;"><span style="color: #008080;"></span> $</span> <span style="color: #0000ff;"><span style="color: #0000ff;">class</span></span><span style="color: #000000;"><span style="color: #000000;"></span> program</span><span style="color: #008080;"><span style="color: #008080;">Panax Notoginseng</span></span> <span style="color: #000000;"><span style="color: #000000;"> {</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #0000ff;"><span style="color: #0000ff;">Static</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span>Main (<span style="color: #0000ff;"><span style="color: #0000ff;">string</span></span><span style="color: #000000;"><span style="color: #000000;">[] Args)</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span> <span style="color: #000000;"><span style="color: #000000;"> {</span></span><span style="color: #008080;"><span style="color: #008080;"></span> +</span> <span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">declares an array of creature</span></span><span style="color: #008080;"><span style="color: #008080;"></span> a</span>creature[] Pcreaturearray =<span style="color: #0000ff;"><span style="color: #0000ff;">New</span></span>creature[<span style="color: #800080;"><span style="color: #800080;">3</span></span><span style="color: #000000;"><span style="color: #000000;">];</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span> <span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">Here's The relationship between the object-oriented is-a that we learned last time</span> .</span><span style="color: #008080;"><span style="color: #008080;"></span> +</span>pcreaturearray[<span style="color: #800080;"><span style="color: #800080;">0</span></span>] =<span style="color: #0000ff;"><span style="color: #0000ff;">New</span></span><span style="color: #000000;">person <span style="color: #000000;">();</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span>pcreaturearray[<span style="color: #800080;"><span style="color: #800080;">1</span></span>] =<span style="color: #0000ff;"><span style="color: #0000ff;">New</span></span><span style="color: #000000;"><span style="color: #000000;">Cat ();</span></span><span style="color: #008080;"><span style="color: #008080;"></span> $</span>pcreaturearray[<span style="color: #800080;"><span style="color: #800080;">2</span></span>] =<span style="color: #0000ff;"><span style="color: #0000ff;">New</span></span><span style="color: #000000;"><span style="color: #000000;">Dog ();</span></span><span style="color: #008080;"><span style="color: #008080;"></span> $</span> <span style="color: #0000ff;"><span style="color: #0000ff;">foreach</span></span>(<span style="color: #0000ff;"><span style="color: #0000ff;">var</span></span>Creature<span style="color: #0000ff;"><span style="color: #0000ff;">inch</span></span><span style="color: #000000;"><span style="color: #000000;">Pcreaturearray)</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #000000;"><span style="color: #000000;"> {</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">using as for conversion</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span>Iloveworld B = Creature<span style="color: #0000ff;"><span style="color: #0000ff;"></span> as</span><span style="color: #000000;"><span style="color: #000000;">iloveworld;</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #000000;"><span style="color: #000000;">B.sayhello ();</span></span><span style="color: #008080;"><span style="color: #008080;">Wuyi</span></span> <span style="color: #000000;"><span style="color: #000000;"> }</span></span><span style="color: #008080;"><span style="color: #008080;"></span> the</span> <span style="color: #000000;"><span style="color: #000000;">Console.readkey ();</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span> <span style="color: #000000;"><span style="color: #000000;"> }</span></span><span style="color: #008080;"><span style="color: #008080;"></span> wu</span> <span style="color: #000000;"><span style="color: #000000;"> }</span></span><span style="color: #008080;"><span style="color: #008080;"></span> -</span>}</pre><span class="cnblogs_code_collapse"><span class="cnblogs_code_collapse">Interface Demo</span></span><p><p>Operation Result:</p></p><p><p></p></p><p><p>  </p></p><p style="margin: 0in; font-family: Calibri; font-size: 10.5pt;"><p style="margin: 0in; font-family: Calibri; font-size: 10.5pt;"></p></p><p><p>. NET Interface Learning Notes</p></p></span>

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.