1、接口

(1)接口是一种规范、协议,定义了一组具有各种功能的方法(属性、索引器本质是方法)。

(2)接口存在的意义:多态。多态的意义:程序可扩展性。

(3)接口解决了类的多继承的问题。

(4)接口解决了类继承以后体积庞大的问题。

(5)接口与接口之间可以继承,并且可以多继承。

(6)接口中的成员必须不能有实现,接口不能实例化。

(7)接口中的成员不能有访问修饰符,默认Public。(可以用反编译工具查看)

(8)接口中可以有属性、方法、索引器等,但不能有字段。

(9)实现接口的子类必须实现该接口的全部成员,如果不想实现接口中的成员,可以把该成员实现为abstract。

(10)当一个类同时继承了一个类和一个接口,类写在接口前面。

//(6)接口中的成员必须不能有实现,接口不能实例化。
public interface IFly
{
void Fly();
} public interface ISwim
{
void Swim();
} //潜水,会潜水的一定会有用
//(5)接口之间可以实现多继承。
public interface IDiving : ISwim
{
void Diving();
} public class Animal
{
private string _name; public string Name
{
get { return _name; }
set { _name = value; }
} public void Say()
{
Console.WriteLine("I am " + this.Name + "!");
}
} //(10)当一个类同时继承了一个类和一个接口,类写在接口前面。
//(3)接口解决了类的多继承的问题。
//(4)接口解决了类继承以后体积庞大的问题。尽量每个接口只有一个功能
public class Swan : Animal, IFly, ISwim
{
public void Fly()
{
Console.WriteLine("I can fly!");
} public void Swim()
{
Console.WriteLine("I can swim!");
}
} //(9)实现接口的子类必须实现该接口的全部成员,如果不想实现接口中的成员,可以把该成员实现为abstract。
public abstract class Amphibians : Animal, IFly, ISwim
{
public abstract void Fly(); public abstract void Swim();
} public class WildDuck : Amphibians
{
public override void Fly()
{
Console.WriteLine("I can fly!");
} public override void Swim()
{
Console.WriteLine("I can swim!");
}
}

接口代码演示

ASP.Net软件工程师基础(四)的更多相关文章

  1. ASP.Net软件工程师基础(一)

    本人目前是一名有1年左右ASP.Net开发经验的的软件开发工程师,目前公司用的是MVC+EF+...做的网站.写这套总结性系列文章的目的有两个:一是帮助自己总结一下自己到底有多少斤两,而不是一味的学新 ...

  2. ASP.Net软件工程师基础(二)

    1.封装 答:属性封装了字段,通过get和set访问器限制字段对外开放的程度:将重复的代码封装成方法,实现DCR原则(Don't Copy yourself):方法的参数组合可以用类实现,即在方法中不 ...

  3. ASP.Net软件工程师基础(三)

    1.多态 答: (1)虚方法 public class Child : Person { public void Speach() { base.Speach(); } public virtual ...

  4. QT软件工程师招聘市场需求报告

    QT软件工程师招聘市场需求报告 目录 最流行的编程语言排行榜 QT软件工程师职位需求 QT软件工程师薪资待遇 QT软件工程师行业需求 QT软件工程师QT技术需求 QT软件工程师基础技术需求 QT软件工 ...

  5. GIS基础软件及操作(四)

    原文 GIS基础软件及操作(四) 练习四.空间数据处理 1.空间数据处理(融合.合并.剪切.交叉.合并)2.设置地图投影及投影变换 空间数据处理 数据:云南县界.shp; Clip.shp西双版纳森林 ...

  6. ASP.Net MVC开发基础学习笔记:四、校验、AJAX与过滤器

    一.校验 — 表单不是你想提想提就能提 1.1 DataAnnotations(数据注解) 位于 System.ComponentModel.DataAnnotations 命名空间中的特性指定对数据 ...

  7. 软件工程师 Book

    一.软件工程师  --Clean Code<代码整洁之道>  --Implementation Patterns<实现模式>  --Code Complete<代码大全& ...

  8. 关于Java 软件工程师应该知道或掌握的技术栈

    鄙人星云,今天突然想写这么一篇需要持续更新的文章,主要目的用于总结当前最流行的技术和工具,方便自己也方便他人. 更新时间:2018-10-23 09:26:19 码农职业路径图 码农入门职业路径图 J ...

  9. JavaSE 软件工程师 认证考试试卷3

    JavaSE 软件工程师 认证考试试卷   笔试   考试时间150分钟 总分 100分   姓    名_______________________ 身份证号___________________ ...

随机推荐

  1. js 二维数组定义

    1.二维数组声明方式是下面这样的: var images=new Array(); //先声明一维 for(var i=0;i<10;i++){ //一维长度为10 images[i]=new ...

  2. tomcat如何按站点调试本机程序

    1.配置host host地址:c:\windows\system32\drivers\etc 配置本机域名: # localhost name resolution is handled withi ...

  3. mysql-mmm高可用配置说明

    http://www.cnblogs.com/gomysql/p/3671896.html 实战配置 http://www.cnblogs.com/chenmh/p/5744227.html 半同步配 ...

  4. Servlet连接数据库

    测试连接数据库为MS Sql Server 2008 步骤一:去微软下载sqljdbc_4.0 步骤二:无需安装,解压出来,把sqljdbc4.jar包copy to Tomcat的lib目录下 步骤 ...

  5. 【linux】关机重启命令

    shutdown: [参数][时间] -h:关机 -r:重启 -c:取消上一次关机或重启 [root@paulinux ~]# shutdown -h now ##马上重启 [root@paulinu ...

  6. 【转】libvirt kvm 虚拟机上网 – Bridge桥接

    libvirt kvm 虚拟机上网 – Bridge桥接 2013 年 7 月 3 日 / 东东东 / 暂无评论 目录 [hide] 1 Bridge桥接原理 2 在host机器配置桥接网络 2.1  ...

  7. bzoj2734 集合选数

    Description <集合论与图论>这门课程有一道作业题,要求同学们求出{1, 2, 3, 4, 5}的所有满足以 下条件的子集:若 x 在该子集中,则 2x 和 3x 不能在该子集中 ...

  8. Python编写一个Python脚本

    我想要一个可以为我的所有重要文件创建备份的程序.(下面测试环境为python2.7) 1.backup_ver1.py #!/usr/bin/python import os import time ...

  9. 几个关于wcf、rest服务的好帖子

    //http://blog.csdn.net/fangxing80/article/details/6247297  //http://msdn.microsoft.com/zh-cn/magazin ...

  10. Highcharts 功能强大、开源、美观、图表丰富、兼容绝大多数浏览器的纯js图表库

    http://www.hcharts.cn/index.php 暂无介绍,等待后续补充