.net初学之接口初接触

1.接口  定义接口是为了统一标准,关键字interface。

定义接口时,接口名前要加大写字母I,例如

interface Ijiekou

{

string fangfa(); //没有方法体的方法

}

2. (1)接口内的方法没有方法体,没有修饰符,不实现。

(2)接口也有传递性,不能被实例化,不能写带方法体的方法。

(3)普通类继承接口必须实现其未实现的方法,接口继承接口可以不实现其方法,抽象类不能继承接口。

(4)普通类可以继承多个接口。

3.接口与抽象类的异同

  抽象类 接口
用abstract定义 用interface定义
只能继承一个类 可以继承多个接口
非抽象派生类必须实现抽象方法 继承接口的类必须实现所有方法
需要override关键字 直接实现
可以写有方法体的方法 不能写有方法体的方法
1.都不能被实例化
2.包含未实现的方法
3.派生类必须实现未实现的方法

4.接口作为参数传递,传递的是实现接口的对象;接口作为返回类型返回,返回的也是实现接口的对象。

 1 public class A
 2 {
 3      interface Ijiekou()   //定义接口Ijiekou
 4   {
 5       int Num();
 6   }
 7 }
 8
 9 public class B : Ijiekou   //B类继承接口Ijiekou
10 {
11   public int a
12   {
13       public int Num()
14     {
15         return 1;
16     }
17   }
 1  static void Main(string[] args)
 2   {
 3     Ijiekou J = new B();    //接口实例化B类
 4     A.x = new A();            //实例化类
 5     x.chuancan(J);            //把J传进chuancan类里
 6   }
 7   public int chuancan(Ijiekou i)               // 这里是把接口作为参数使用的
 8   {
 9       Console.WriteLine(i.Num)  //输出B类中的a方法的返回值
10   }
 1 static void Main(string[] args)
 2   {
 3     Ijiekou J =new B();
 4    Console.WriteLine(J.fanhui.Num);
 5   }
 6   public Ijiekou fanhui()                           //这里是把接口作为返回类型的
 7   {
 8      Ijiekou JJ = new B();
 9      return JJ;
10   }
11 }
时间: 2024-07-31 00:40:23

.net初学之接口初接触的相关文章

cglib初接触

直接上代码吧. pom添加依赖: <dependencies> <dependency> <groupId>cglib</groupId> <artifactId>cglib-nodep</artifactId> <version>3.1</version> </dependency> <dependency> <groupId>org.ow2.asm</groupId

MyBatis初接触

参考MyBatis官方文档. 基本开发步骤: 一.导包,mybatis-3.2.7.jar: 二.编写实体类Customer.java(与数据库表对应): 三.编写实体类对应的mapper接口CustomerMapper.java(定义实体类的操作): 四.编写实体类对应的mapper,Customer.xml(接口中的方法名与mapper中的操作的id名要一致): 五.编写mybatis-config.xml: 六.在mybatis-config.xml中注册mapper: 七.从xml获取S

初接触Linux,防火墙的规则和语法

今天给大家带来的是防火墙 一.防火墙 防火墙分为网络防火墙和应用层防火墙 1.网络防火墙 网络防火墙就是一个位于计算机和它所连接的网络之间的防火墙.该计算机流入流出的所有网络通信均要经过此防火墙.防火墙对流经它的网络通信进行扫描,这样能够过滤掉一些攻击,以免其在目标计算机上被执行.防火墙还可以关闭不使用的端口.而且它还能禁止特定端口的流出通信,封锁特洛伊木马.最后,它可以禁止来自特殊站点的访问,从而防止来自不明入侵者的所有通信. 2.应用层防火墙 应用层防火墙是在 TCP/IP 堆栈的"应用层&

【瞎折腾系列】mysql存储过程初接触

开始[瞎折腾系列],这个系列纯属瞎折腾,可能没有什么实际意义. mysql存储过程生成表: 新建一张user表,包含id, username , password , usertable字段. 然后创建存储过程: create PROCEDURE create_table() BEGIN DECLARE n int DEFAULT 0; DECLARE t_error INTEGER DEFAULT 0; DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET

linux的初接触

最初衷:当自己的才能不能支配起内心的梦想时,便需要静下心来读读书.知道linux算一个巧合,但既然选择,那便努力一把.这是我的第一篇博文,也是我正式接触linux的所学.愿与大家共勉. ---Aolens 一,Linux比较常见的几个版本以及他们包含的常见的分支: 1,  Debian:ubuntu 2,  Slackware:s.u.S.E 3,  Redhat:CentOS,Fedora,HREL(centos的社区版,由centos调试一些软件是否成功来添加到HREL中         )

jfinal初接触,一个简单的文件上传例子

写了个上传的小例子. 从jfinal官网下载jfinal-1.8_demo_for_jsp.zip 然后下载jfinal-1.8-lib.zip 按要求删掉该删除的,引入一些包,之后的项目结构: DemoConfig.java中配置路由,只留下了根路径: /** * 配置路由 */ public void configRoute(Routes me) { me.add("/", CommonController.class); //me.add("/blog", B

java8 lambda表达式初接触

环境是jdk8 代码如下: package memTest; /** * Created by PC on 2014/8/5. */ public class LambdaOne { public static void test(){ new Thread(()-> System.out.print("hi") ).start(); } public static void main(String[] args) { new LambdaOne().test(); } } ja

vi初接触

它有三种模式: 一 一般模式 二 编辑模式 三 命令行模式 介绍几种比较常用的吧 -- 退出:q 写入:w 强制:! (以上可叠加) 显示行号:set nu 取消:set nonu 跳转到n行:nG 最后一行:G 第一行:gg(=1G) 向某个方向移动n个字符: 方向可以用方向键,也可以用 h(左),k(上),l(右),j(下) #向右移动5个字符 eg:5l 寻找词语:/word(向下) ?word(向下) 寻找x,y行之间的单词并替换:x,ys/word/WORD/g (加C可询问处理) #

【Centos 7】------ SaltStack 初接触

最近学习了saltstack,初接触,发现他好强大,有多强大? 说不好,我只接触了冰山一角,但已经够我喝一壶的了. 接下来,将探究saltstack的世界,能发现多少新大陆,看自己的能力啦! saltstack 介绍: Salt,一种全新的基础设施管理方式,部署轻松,在几分钟内可运行起来,扩展性好,很容易管理上万台服务器,速度够快,服务器之间秒级通讯. salt底层采用动态的连接总线,使其可以用于编配,远程执行, 配置管理等等. 一个配置管理系统,能够维护预定义状态的远程节点(比如,确保指定的报