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 ...
随机推荐
- [转]搞ACM的你伤不起(转自Roba大神)
劳资六年前开始搞ACM啊!!!!!!!!!! 从此踏上了尼玛不归路啊!!!!!!!!!!!! 谁特么跟劳资讲算法是程序设计的核心啊!!!!!! 尼玛除了面试题就没见过用算法的地方啊!!!!!! 谁再跟 ...
- jQuery插件---exselect实现联动
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title> ...
- java知识点、重点知识点
重点章节: 面对对象章节 重点知识点: Lambda表达式 数据:内存-->数据库 知识点一拦: 类.面向对象.对象.封装.继承.多态.消息.UML建模.数据类型(基本类型.引用类型).数据类型 ...
- nginx启动、重启、关闭
一.启动 cd usr/local/nginx/sbin ./nginx 二.重启 更改配置重启nginx kill -HUP 主进程号或进程号文件路径 或者使用 cd /usr/local/ngin ...
- [转]实体类(VO,DO,DTO)的划分
原文地址:http://blog.sina.com.cn/s/blog_7a4cdec80100wkyh.html 经常会接触到VO,DO,DTO的概念,本文从领域建模中的实体划分和项目中的实际应用情 ...
- 【BZOJ 1014】【JSOI 2008】火星人prefix
看了<Hash在信息学竞赛中的一类应用>中的例题3,这道题很类似啊,只不过没有删点和区间翻转. 用Splay维护字符串哈希,加点改点什么的就不用说了,查询时二分答案,这样时间复杂度是$O( ...
- sed巧用,随手记
删除文件后几行,或者前几行 方法1 都当做最后一行,来删除 for((i=1;i<4;i++)); do sed -i '$d' seq01.txt ; done 方法二 倒过来看 cat ...
- 状态压缩codeforces 11 D
n个点m条边 m条边 求有几个环; #pragma comment(linker, "/STACK:102400000,102400000") #include <iostr ...
- Oracle查询所有序列
--查看当前用户的所有序列 select SEQUENCE_OWNER,SEQUENCE_NAME from dba_sequences where sequence_owner='用户名'; --查 ...
- Spring注解@PostConstruct与@PreDestroy
关于在spring 容器初始化 bean 和销毁前所做的操作定义方式有三种: 第一种:通过@PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作 第二 ...