Interface/接口
1. 类和结构能够实现接口
2. 接口声明包含如下四种类型:属性、方法、事件和索引;这些函数声明不能包含任何实现代码,而在每一个成员的主体后必须使用分号
3. 继承接口的类或结构必须实现接口中的所有成员
4. 显示接口的实现注意下面的代码
class Program
{
static void Main(string[] args)
{
SampleClass_1 sc = new SampleClass_1();
IControl ctr1 = (IControl)sc;
ISurface srfc = (ISurface)sc;
// 调用一样的方法,继承
sc.Paint();
ctr1.Paint();
srfc.Paint();
Console.WriteLine(); //显式接口实现
SampleClass_2 obj = new SampleClass_2();
IControl c = (IControl)obj;
ISurface s = (ISurface)obj;
obj.Paint();
c.Paint();
s.Paint(); Console.ReadKey();
}
}
public interface IControl // 接口可以有访问修饰符
{
void Paint(); //成员不允许有任何访问修饰符,默认public
int P { get; }
}
public interface ISurface
{
void Paint();
}
class SampleClass_1:IControl,ISurface
{
//IControl.Paint和ISurface.Paint都会调用这个方法
public void Paint()
{
Console.WriteLine("Paint method in SampleClass");
}
private int _value=10;
public int P
{
get { return _value; }
set { _value = value; } //可以添加set访问器
}
}
class SampleClass_2:IControl ,ISurface
{
//显式接口实现
void IControl.Paint() //这时候不能加访问修饰符public, 要完全和接口定义一致
{
Console.WriteLine("IControl.Paint");
}
void ISurface.Paint()
{
Console.WriteLine("ISurface.Paint");
}
public void Paint()
{
Console.WriteLine("SampleClass_2.Paint");
}
private int _value=10;
int IControl.P
{
get { return _value; }
//set { }显式接口必须和接口定义完全一致,不能任意添加set访问器
}
}
Interface/接口的更多相关文章
- as3.0 interface接口使用方法
[转]as3.0 interface接口使用方法 AS在2.0的时候就支持接口了 接口能够让你的程序更具扩展性和灵活性,打个例如 比方你定义了一个方法 代码: public function aMet ...
- interface接口
当一个抽象类中的方法都是抽象的时候,这时可以将该抽象类用另一种形式定义和表示,就是接口 interface. 定义接口使用的关键字不是class,是interface.接口中常见的成员: 这些成员都有 ...
- golang面向对象和interface接口
一. golang面向对象介绍 1.golang也支持面向对象编程,但是和传统的面向对象编程有区别,并不是纯粹的面向对象语言.2.golang没有类(class),golang语言的结合体(struc ...
- Golang 入门系列(四)如何理解interface接口
前面讲了很多Go 语言的基础知识,包括go环境的安装,go语言的语法等,感兴趣的朋友,可以先看看之前的文章.https://www.cnblogs.com/zhangweizhong/category ...
- go interface接口
一:接口概要 接口是一种重要的类型,他是一组确定的方法集合. 一个接口变量可以存储任何实现了接口方法的具体值.一个重要的例子就是io.Reader和io.Writer type Reader inte ...
- java interface接口的传值方法
A 类 package interface_test; public class A { private IPresenter ip; public A(IPresenter ip) { this.i ...
- JAVA 构造器, extends[继承], implements[实现], Interface[接口], reflect[反射], clone[克隆], final, static, abstrac
记录一下: 构造器[构造函数]: 在java中如果用户编写类的时候没有提供构造函数,那么编译器会自动提供一个默认构造函数.它会把所有的实例字段设置为默认值:所有的数字变量初始化为0;所有的布尔变量设置 ...
- 011-对象——interface接口说明与使用方式实例
<?php /** interface接口说明与使用方式实例 * * 接口里面的方法全是抽象方法,没有实体的方法.这样的类我们就叫做接口.定义的时候用Interface定义.实现接口时用impl ...
- Java Interface接口
Java 中接口概念 接口可以理解为一种特殊的 类,由 全局常量 和 公共的抽象方法 所组成. 类是一种具体实现体,而接口定义了某一批类所需要遵循的规范,接口不关心这些类的内部数据, 也不关心这些类里 ...
- Golang基础(8):go interface接口
一:接口概要 接口是一种重要的类型,他是一组确定的方法集合. 一个接口变量可以存储任何实现了接口方法的具体值.一个重要的例子就是io.Reader和io.Writer type Reader inte ...
随机推荐
- android之视频播放
视频播放和音频播放一样,都是使用MediaPlayer来播放的,区别就是MediaPlayer播放视频时是直接在Activity中实现的,而音频播放则需要写到服务中去.使用MediaPlayer只支持 ...
- mysql忘记密码怎么办?
mysql有时候忘记密码了怎么办?我给出案例和说明!一下就解决了! Windows下的实际操作如下 1.关闭正在运行的MySQL. 2.打开DOS窗口,转到mysql\bin目录. 3.输入mysql ...
- C# Image Resizer
This program is used to resize images. using System; using System.Windows.Forms; using System.Drawin ...
- Collections的应用
Collection : 接口 Collections : 集合的工具类 Arrays (数组的工具类) 只能操作list集合 说出Collection和Collections 的区别 ...
- 1025基础REDIS
-- 登录AUTHPING -- 通用命令EXISTS KEY EXPIRE KEY seconds 为给定 KEY 设置过期时间 -- 字符SET runoobkey redisDEL runoob ...
- 思维导图分享以及MindManager使用说明
来源于: http://www.cnblogs.com/muhongxing/archive/2009/12/22/1628782.html http://www.cnblogs.com/muhong ...
- esayUi中datagrid中json串为空时,显示上一次数据的解决方法
function initSearchProject(startDate,finishDate,flag) { $("#finishDate").val(finish ...
- ubuntu mysql远程登录设置
1:打开命令终端:vim /etc/mysql/my.cnf 并找到bind-address = 127.0.0.1这行 注释掉这行,如:#bind-address = 127.0.0.1,即在前面加 ...
- [转]制作png格式透明图片的简易方法
原文地址:http://blog.csdn.net/zhouyingge1104/article/details/24460743 photoshp之类的专业软件太复杂,其实,制作透明图标有比较简易的 ...
- Shiro 学习笔记(一)——shiro简介
Apache Shiro 是一个安全框架.说白了,就是进行一下 权限校验,判断下这个用户是否登录了,是否有权限去做这件事情. Shiro 可以帮助我们完成:认证.授权.加密.会话管理.与web 集成. ...