先列出我写的代码:

接口以及抽象类、实现类

  public interface IA
{
void H();
} public interface IB
{
void H();
} public abstract class D
{
public abstract void H();
} public class C : D,IA, IB
{ void IA.H()
{
Console.WriteLine("all a.h");
} public override void H()//T
{
Console.WriteLine("all b.h");
}
}

如果类C继承了抽象类D,那么在类C中可以使用override关键字,接口IB调用的也是被覆盖的方法H(T位置)【可以理解T位置的方法H同时覆盖了抽象类D中的方法H和实现了接口IB中的方法H】。

如果类C不继承抽象类D,那么类C中不能使用override关键字,override关键字只能在继承抽象类的情况下使用(个人使用之后感觉是这样的)。

一开始的代码是这样的:

    public interface IA
{
void H();
} public interface IB
{
void H();
} public abstract class D
{
public abstract void H();
} public class C : D,IA, IB
{
public override void H()
{
Console.WriteLine("all h");
} void IA.H()
{
Console.WriteLine("all a.h");
} void IB.H()
{
Console.WriteLine("all b.h");
}
}

显示实现接口。显示实现接口时不能在覆盖的方法或字段上使用访问权限关键字【private、protected、public等】

在不继承抽象类D的情况下是这样的:

    public class C : IA, IB
{
public void H()//U
{
Console.WriteLine("all h");
} void IA.H()
{
Console.WriteLine("all a.h");
} void IB.H()
{
Console.WriteLine("all b.h");
}
}

调用时,接口IA的对象只能访问IA.H(),接口IB只能访问IB.H(),访问不到U位置的方法。只能在实例化类C的情况下才能访问到U位置的方法H

调用的代码:

   class Program
{
static void Main(string[] args)
{
IA a = new C();
IB b = new C();
a.H();
b.H();
D d = new C();
d.H(); C c = new C(); c.H();
Console.WriteLine("Hello World!");
Console.ReadLine();
}
}

以上就是我个人的小总结,如果有错,欢迎指正,个人的语文不好。欢迎批评。

C# 中关于接口实现、显示实现接口以及继承的更多相关文章

  1. 安全接口 interface --显示实现接口

    前言:当我们定义接口的成员的时候不需要写访问控制符,因为它是默认public的,也只能是public.当一个类要实现这个接口的时候,自然要公开其成员.一直以来我都这么做. interface Inte ...

  2. C# 中显示实现接口

    接口的实现分为显示实现和隐式实现 用显示实现接口的目的就是为了,当一个类中实现多个具有相同方法的接口时,能够区分开来 在调用的时候,必须用接口调用. class Program { static vo ...

  3. .net 反射访问私有变量和私有方法 如何创建C# Closure ? C# 批量生成随机密码,必须包含数字和字母,并用加密算法加密 C#中的foreach和yield 数组为什么可以使用linq查询 C#中的 具名参数 和 可选参数 显示实现接口 异步CTP(Async CTP)为什么那样工作? C#多线程基础,适合新手了解 C#加快Bitmap的访问速度 C#实现对图片文件的压

    以下为本次实践代码: using System; using System.Collections.Generic; using System.ComponentModel; using System ...

  4. java中集合类中Collection接口中的List接口的常用方法熟悉

    1:集合类,在java语言中的java.util包提供了一些集合类,这些集合类又被称作容器. 2:区别集合类和数组.(1)数组的长度是固定的,集合的长度是可变的.(2)数组是用来存放基本数据类型的,集 ...

  5. 报表开发工具中开放的部分图表js接口列表

    1.. 描述 报表开发工具FineReport 8.0版本中开放了部分图表js接口,在具体应用的过程中很多人都不知道这些接口到底有什么作用,该怎么应用,所以根据我自己的应用在下面归纳了这些新开放js接 ...

  6. C# 使用隐式或显示实现接口的区别

    通俗的来讲,"显示接口实现"就是使用接口名称作为方法名的前缀;而传统的实现方式称之为:"隐式接口实现".费话不说,例子如下:      interface IA ...

  7. vue中Axios的封装和API接口的管理

    前端小白的声明: 这篇文章为转载:主要是为了方便自己查阅学习.如果对原博主造成侵犯,我会立即删除. 转载地址:点击查看 如图,面对一团糟代码的你~~~真的想说,What F~U~C~K!!! 回归正题 ...

  8. 显示实现接口的好处c#比java好的地方

    所谓Go语言式的接口,就是不用显示声明类型T实现了接口I,只要类型T的公开方法完全满足接口I的要求,就可以把类型T的对象用在需要接口I的地方.这种做法的学名叫做Structural Typing,有人 ...

  9. 008.在C#中,显式接口VS隐式接口

    原文http://www.codeproject.com/Articles/1000374/Explicit-Interface-VS-Implicit-Interface-in-Csharp (At ...

随机推荐

  1. 重新绑定ItemsSource先设置ItemsSource = null;的原因

    即报错信息为:在使用 ItemsSource 之前,项集合必须为空.   原因:Items和ItemSource,只能有一个生效,想用其中一个,另一个必须是空.   重新绑定ItemSource,虽然 ...

  2. 【JAVAWEB学习笔记】12_Http&Tomcat

    一.Http协议 1.什么是Http协议 HTTP,超文本传输协议(HyperText Transfer Protocol)是互联网上应用最为广泛的     一种网络协议.所有的WWW文件都必须遵守这 ...

  3. 基于OWIN+DotNetOpenOAuth实现OAuth2.0

    这几天时间一直在研究怎么实现自己的OAuth2服务器,对于太了解OAuth原理以及想自己从零开始实现的,我建议可以参考<Apress.Pro ASP.NET Web API Security&g ...

  4. wiringPi安装

    wiringPi安装   更新软件,输入以下指令:   sudo apt-get update   sudo apt-get upgrade   通过GIT获得wiringPi的源代码   git c ...

  5. 019 关联映射文件中集合标签中的lazy(懒加载)属性

    <set>.<list>集合上,可以取值:true/false/extra,(默认值为:true) 实例一:(集合上的lazy=true(默认))class默认lazy=tru ...

  6. 开涛spring3(12.1) - 零配置 之 12.1 概述

    12.1  概述 12.1.1  什么是零配置 在SSH集成一章中大家注意到项目结构和包结构是不是很有规律,类库放到WEB-INF/lib文件夹下,jsp文件放到WEB-INF/jsp文件夹下,web ...

  7. 探讨SQL Server并发处理队列数据不阻塞解决方案

    前言 之前对于并发这一块确实接触的比较少,自从遇到现在的老大,每写完一块老大都会过目一下然后给出意见,期间确实收获不少,接下来有几篇会来讲解SQL Server中关于并发这一块的内容,有的是总结,有的 ...

  8. 支付宝支付-常用支付API详解(查询、退款、提现等)

    所有的接口支持沙盒环境的测试 1.前言 前面几篇文件详细介绍了 支付宝提现.扫码支付.条码支付.Wap支付.App支付 支付宝支付-提现到个人支付宝 支付宝支付-扫码支付 支付宝支付-刷卡支付(条码支 ...

  9. node--更新数据库问题

    昨天测试blog的comment功能,在新增comment相关的代码之后,重启应用,出现Cannot call method 'forEach' of undefined .反复核对代码,都没发现异常 ...

  10. 解决相关css基础问题

    //html代码 <div class="operateWays"> <label> <input type="radio" na ...