在head first 设想形式中 用到了许多许多接口对象
起首廓清一个题目,就是接口不仅能够声明对象,而且能够把对象实例化,还能够当作参数被传入。
一、接口回调
这就是继续中的向上转型。父类 FL=new 子类();只不过这里的父类就是interface接口。(个人认为这里不管是class的override照样interface的重写,都是一样的用法)
能够把完成某一接口类建立的对象的援用赋给该接口声明的接口变量,那末该 接口变量就能够挪用被类完成的接口中的要领。实际上,当接口变量挪用被类完成的接口中的要领时,就是关照响应的对象挪用接口要领
直接上代码
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { interface Itemp { double plus(); } public class num : Itemp { double aa, bb; public num(double a, double b) { this.bb = b; this.aa = a; } public double plus() { return (aa * bb); } } class Program { static void Main(string[] args) { num n = null;//声明类对象援用 Itemp tm = null;//声明接口对象援用 tm = new num(1.1, 2.2);//接口回调(向上转型) Console.WriteLine(tm.plus()); Console.ReadKey(); } } }
经由过程上面的例子,我们不难看出,接口对象的实例化实际上是一个接口对象作为一个援用,指向完成了它要领的谁人类中的一切要领,这一点异常象C++中的函数指针(在C#中相似托付),然则倒是有区分的。C#中的接口对象实例化实际上是一对多的,而C++中的函数指针是一对一的。
然则须要注重的是,接口对象的实例化必须用完成它的类来实例化,而不能用接口自身实例化。用接口自身实例化它自己的对象在C#中是不允许的。
以上就是细致引见C#实例化接口对象的要领的细致内容,更多请关注ki4网别的相干文章!