温故知新:接口的隐式实现与显式实现
时间:2022-04-23
本文章向大家介绍温故知新:接口的隐式实现与显式实现,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
这二者的区别,仅在一个类同时实现多个接口,且多个接口中有相同的方法名字定义时,才有比较的意义。
using System;
namespace InterfaceTest
{
class Program
{
static void Main(string[] args)
{
TestAB ab = new TestAB();
ab.HelloWorld(); //Hello World!
IB b = ab as IB;
b.HelloWorld(); //IB.HelloWorld!
IA a = ab as IA;
a.HelloWorld(); //IA.HelloWorld!
Console.Read();
}
}
//IA的接口定义
interface IA
{
void HelloWorld();
}
//IB的接口定义
interface IB
{
void HelloWorld();
}
class TestAB : IA, IB
{
//隐式实现IA与IB的HelloWorld方法
public void HelloWorld()
{
Console.WriteLine("Hello World!");
}
//显式实现IB接口的HelloWorld方法
void IB.HelloWorld()
{
Console.WriteLine("IB.HelloWorld!");
}
//显式实现IA接口的HelloWorld方法
void IA.HelloWorld()
{
Console.WriteLine("IA.HelloWorld!");
}
}
}
输出结果已经说明了问题,就不多做解释了。
结论:
1、对于显式实现的接口方法,在类实例上调用时,需要显式转换为指定的接口,然后才能正确调用。
2、如果类实例不显式转换接口,直接用"类实例.接口同名方法"调用,将调用隐式实现的方法.
3、显式实现的接口方法,不能加public之类的关键字修饰。
4、通常显式实现并非必需的步骤.(本例中,可以去掉IA或IB的显式实现部分,甚至这二个显式实现都可以去掉,然后再观察下输出结果)
- Java学习笔记【持续更新】
- 互联网协议入门(二)
- 设计模式六大原则(4):接口隔离原则
- 设计模式六大原则(3):依赖倒置原则
- 闲的无聊时候就手动写第一个漏洞扫描工具吧!
- 模拟退火算法从原理到实战【基础篇】
- python接口自动化3-自动发帖(session)
- 平面上给定n条线段,找出一个点,使这个点到这n条线段的距离和最小。
- python接口自动化4-绕过验证码登录(cookie)
- 洛谷P1313 计算系数【快速幂+dp】
- python接口自动化5-Json数据处理
- Numpy教程第1部分 - 阵列简介(常用基础操作总结)
- Session和Cookies的基本原理
- 浅析Numpy.genfromtxt及File I/O讲解
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- SELinux 入门详解
- Android EditText限制输入字符的方法总结
- Android使用API实现图像扭曲效果示例
- linux网络配置工具的使用
- Android基于BaseExpandableListAdapter实现的二级列表仿通话记录功能详解
- Android中使用AsyncTask实现下载文件动态更新进度条功能
- 在CentOS VPS上通过SSH安装 MySQL的方法图解
- 使用vs2019进行Linux远程开发的方法步骤
- Android WebView的使用方法总结
- Android继承ViewGroup实现Scroll滑动效果的方法示例
- Linux内核设备驱动之字符设备驱动笔记整理
- Android 中在有序广播中添加自定义权限的实例
- 在 CentOS 8 上安装Jenkins的方法
- Android使用DrawerLayout实现侧滑菜单效果
- android语音即时通讯之录音、播放功能实现代码