文档章节

C# 语法练习(15): 接口

涂孟超
 涂孟超
发布于 2014/09/26 15:35
字数 316
阅读 38
收藏 0

钉钉、微博极速扩容黑科技,点击观看阿里云弹性计算年度发布会!>>>


接口只声明、无实现、不能实例化;
接口可包含方法、属性、事件、索引器, 但无字段;
接口成员都是隐式的 public, 不要使用访问修饰符;

类、结构和接口都可以继承多个接口;
继承接口的类必须实现接口成员, 除非是抽象类;
类实现的接口成员须是公共的、非静态的.

入门示例:
using System;

interface MyInterface
{
    int Sqr(int x);
}

class MyClass : MyInterface
{
    public int Sqr(int x) { return x * x; }
}


class Program
{
    static void Main()
    {
        MyClass obj = new MyClass();
        Console.WriteLine(obj.Sqr(3)); // 9

        MyInterface intf = new MyClass();
        Console.WriteLine(intf.Sqr(3));

        Console.ReadKey();
    }
}

 
 
 
 
 

 

 

  

一个接口得到不同的实现:
using System;

interface MyInterface
{
    int Method(int x, int y);
}

class MyClass1 : MyInterface
{
    public int Method(int x, int y) { return x + y; }
}

class MyClass2 : MyInterface
{
    public int Method(int x, int y) { return x - y; }
}


class Program
{
    static void Main()
    {
        MyInterface intf1 = new MyClass1();
        MyInterface intf2 = new MyClass2();

        Console.WriteLine(intf1.Method(3, 2)); // 5
        Console.WriteLine(intf2.Method(3, 2)); // 1

        Console.ReadKey();
    }
}

 
 
 
 
 

 

 

  

显示实现接口(接口名.方法):
using System;

interface MyInterface1
{
    void Method();
}

interface MyInterface2
{
    void Method();
}


class MyClass : MyInterface1, MyInterface2
{
    /* 显示实现接口不需要访问修饰符; 但显示实现的方法只能通过接口访问 */
    void MyInterface1.Method() { Console.WriteLine("MyInterface1_Method"); }
    void MyInterface2.Method() { Console.WriteLine("MyInterface2_Method"); }
}


class Program
{
    static void Main()
    {
        MyInterface1 intf1 = new MyClass();
        MyInterface2 intf2 = new MyClass();

        intf1.Method(); // MyInterface1_Method
        intf2.Method(); // MyInterface2_Method

        Console.ReadKey();
    }
}

 
 
 
 
 

 

 

  

涂孟超
粉丝 13
博文 2011
码字总数 14107
作品 0
深圳
程序员
私信 提问
加载中
请先登录后再评论。
C#基础部分之语法和基础知识

C#的入口函数Main有以下形式 无入口参数、无返回值 1 public class HelloWorld 2 { 3 4 public static void Main() 5 { 6 System.Console.Write("Hello World/n"); 7 System.Console.Write(......

彭博
2012/03/09
88
0
.NET软件开发(全系列)之C#语言基础

分享给零基础,致力于.NET开发方向的童鞋一个学习资料。 简介:零基础入门,覆盖主要的C#编程语法基础,语言精练、直击知识点,教法循序渐进、抽丝剥茧,知识体系更系统、更通俗易懂!以知识...

kelo大橙子
2016/04/05
41
0
计算机基础语言学习线路图

计算机基础语言学习线路图 HTML HTML教程 HTML简介 HTML编辑器 HTML基础 HTML元素 HTML属性 HTML标题 HTML段落 HTML样式 HTML格式化 HTML引用元素 HTML计算机代码元素 HTML注释 HTML颜色 HT...

糖果01
2018/10/10
40
0
程序通性

之前只做c#的时候,觉得c#语言是最好的语法,vs是最好的开发工具,和同学聊天一逮到机会痛骂java繁琐的语法,js的非强制性数据类型, 现在学的多,看到多了之后,真是发现,以前的自己,一叶...

咫尺酱心
2019/11/21
0
0
.net基础加强-课前准备

那么我们首先开始我们的第一门课程,叫做《.net基础加强》,那么在这门课程里面呢就会对.net一些基本的东西给大家再做更深入的了解。希望通过这门课程的学习,让你知道怎么自学.net。当你遇到...

长平狐
2012/11/28
23
0

没有更多内容

加载失败,请刷新页面

加载更多

程序员必备之终端模拟器,让你的终端世界多一抹“颜色”

作者:HelloGitHub-ChungZH 当你逐渐厌倦了 cmd 的枯燥黑屏、powershell 的单调蓝底,可以来尝试一下使用可定制性更高的终端模拟器。下面是 HelloGitHub 从 GitHub 上收集的一些开源终端模拟...

osc_rbml5ydi
2分钟前
0
0
饿了么交易系统 5 年演化史

Photo @ Bluehouse Skis 文 | 挽晴 个人简介: 2014年12月加入饿了么,当时参与后台系统的研发(Walis+Javis=>Walle),主要面向客服和BD。 2015年5月开始接触订单系统的研发,7月负责订单研发组...

osc_lhmderwy
4分钟前
0
0
pip安装第三方库,加入清华镜像源的方法

pip install 库名称 -i https://pypi.tuna.tsinghua.edu.cn/simple some-package

云烟成雨forever
5分钟前
0
0
三.Activity启动流程-AMS请求Zygote启动进程过程

。。。。

osc_116hbwph
5分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部