付网站开发费用要计入什么科目,精美的商城网站介绍,网站建设厃金手指花总十三,ps软件破解版例子直接看例子有这样一个接口#xff1a; 然后有三个它的实现类#xff1a; 然后在main方法里面调用#xff1a; 截至目前#xff0c;程序都可以成功的编译和运行。 IPerson接口变更 突然#xff0c;我想对所有的人类添加一个新的特性#xff0c;例如#xff0c;添加一… 例子直接看例子有这样一个接口 然后有三个它的实现类 然后在main方法里面调用 截至目前程序都可以成功的编译和运行。 IPerson接口变更 突然我想对所有的人类添加一个新的特性例如添加一个自我介绍的方法所以我在IPerson里添加了Introduce()这个方法 现在再次Build一下项目肯定会失败的 因为这个方法在三个实现类里面都没有实现。 使用默认的实现来更新接口 如果在C# 8.0以前我们肯定需要把三个实现类都实现一下这个Introduce() 方法。而在C# 8.0里我们可以在IPerson接口里做一个默认的方法实现 再次Build之后您会发现就没有错误了 而且我们也可以在所有的实现类上正常的调用这个方法 我没有设置任何属性但是结果是没问题的。 但是不可以直接在实现类上调用该方法例如这样写就会报错 这是因为Teacher这个实现类并没有定义Introduce()这个方法。 在前面的例子的里我是通过IPerson接口调用的这个方法这是没有问题的因为IPerson这个接口定义了这个方法。 接口的静态成员 上面例子的输出是这样的 而我想让输出有默认的名字和年龄在C# 8.0里面我们可以这样做添加静态字段field和静态方法 实际上这个不会报错的出现红色波浪线的原因可能是因为我的Resharper和VS没有升级Build会成功的。 这里面我做的有点“脱裤子放屁”但我仅仅是为了展示语言的新特性。 然后在调用的时候我们可以在IPerson接口上先设置默认值 然后运行 可以看到由于各个实现类都没有自己的实现所以都输出了默认值。 在类上实现接口方法 在Teacher类上实现Introduce()这个方法 然后就可以调用Teacher上的Introduce()方法了 运行程序 可以看到无论是通过Teacher类的实例还是通过IPerson接口最终调用的都是Teacher类实现的Introduce()方法。 详细介绍请点击原文链接。