ASP.Net软件工程师基础(四)
1、接口
(1)接口是一种规范、协议,定义了一组具有各种功能的方法(属性、索引器本质是方法)。
(2)接口存在的意义:多态。多态的意义:程序可扩展性。
(3)接口解决了类的多继承的问题。
(4)接口解决了类继承以后体积庞大的问题。
(5)接口与接口之间可以继承,并且可以多继承。
(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软件工程师基础(四)的更多相关文章
- ASP.Net软件工程师基础(一)
本人目前是一名有1年左右ASP.Net开发经验的的软件开发工程师,目前公司用的是MVC+EF+...做的网站.写这套总结性系列文章的目的有两个:一是帮助自己总结一下自己到底有多少斤两,而不是一味的学新 ...
- ASP.Net软件工程师基础(二)
1.封装 答:属性封装了字段,通过get和set访问器限制字段对外开放的程度:将重复的代码封装成方法,实现DCR原则(Don't Copy yourself):方法的参数组合可以用类实现,即在方法中不 ...
- ASP.Net软件工程师基础(三)
1.多态 答: (1)虚方法 public class Child : Person { public void Speach() { base.Speach(); } public virtual ...
- QT软件工程师招聘市场需求报告
QT软件工程师招聘市场需求报告 目录 最流行的编程语言排行榜 QT软件工程师职位需求 QT软件工程师薪资待遇 QT软件工程师行业需求 QT软件工程师QT技术需求 QT软件工程师基础技术需求 QT软件工 ...
- GIS基础软件及操作(四)
原文 GIS基础软件及操作(四) 练习四.空间数据处理 1.空间数据处理(融合.合并.剪切.交叉.合并)2.设置地图投影及投影变换 空间数据处理 数据:云南县界.shp; Clip.shp西双版纳森林 ...
- ASP.Net MVC开发基础学习笔记:四、校验、AJAX与过滤器
一.校验 — 表单不是你想提想提就能提 1.1 DataAnnotations(数据注解) 位于 System.ComponentModel.DataAnnotations 命名空间中的特性指定对数据 ...
- 软件工程师 Book
一.软件工程师 --Clean Code<代码整洁之道> --Implementation Patterns<实现模式> --Code Complete<代码大全& ...
- 关于Java 软件工程师应该知道或掌握的技术栈
鄙人星云,今天突然想写这么一篇需要持续更新的文章,主要目的用于总结当前最流行的技术和工具,方便自己也方便他人. 更新时间:2018-10-23 09:26:19 码农职业路径图 码农入门职业路径图 J ...
- JavaSE 软件工程师 认证考试试卷3
JavaSE 软件工程师 认证考试试卷 笔试 考试时间150分钟 总分 100分 姓 名_______________________ 身份证号___________________ ...
随机推荐
- 将Excel数据导入Oracle中
第一步:修改Excel 1.将Excel的表头修改为目标数据库中表的字段名 2.去重(如果有需要的话) 删除Excel表中的重复数据: 选择去重的列: 删除成功后提示: 第二步:将修改后的Excel另 ...
- jquery 事件绑定以及解绑定
var targetSelect = $("#@(Perfix)tbData tbody tr select[data-target]"); targetSelect.off(&q ...
- 【linux】关机重启命令
shutdown: [参数][时间] -h:关机 -r:重启 -c:取消上一次关机或重启 [root@paulinux ~]# shutdown -h now ##马上重启 [root@paulinu ...
- php.ini xdebug
[XDebug]zend_extension = "C:\xampp\php\ext\php_xdebug.dll"xdebug.profiler_append = 0xdebug ...
- LwIP情景示例
1. 你使用UDP作为探测包,但被探测的主机不在网络上. 在发送UDP packet之前,LwIP要将其保存下来(分配一个RAM类型的pbuf),并首先发送ARP Request,但得不到回应.如果你 ...
- Linux中升级更新命令yum upgrade和yum update的区别
区别 Linux升级命令有两个分别是yum upgrade和yum update, 这个两个命令是有区别的: 代码如下: yum -y update #升级所有包,同时也升级软件和系统内核 yum - ...
- Puppet master/agent installation on RHEL7
==================================================================================================== ...
- phpize的安装
一直想装VLD却一直没装上,因为需要用到phpize,但这个工具大部分机子都没有装,上网搜了一下大部分都是讲phpize的应用没有讲怎么安装. 今天终于搜到了,不过是要在linux机器上,有yum命令 ...
- 【MySQL】性能优化 之 延迟关联
[背景] 某业务数据库load 报警异常,cpu usr 达到30-40 ,居高不下.使用工具查看数据库正在执行的sql ,排在前面的大部分是: SELECT id, cu_id, name, in ...
- 【转】Oracle 表空间与数据文件
--============================== --Oracle 表空间与数据文件 --============================== /* 一.概念 表空间:是一个或 ...