c# 第37节 接口的实现与继承
本节内容:
1:接口继承注意
2:开发封闭原则:
3:实例解释接口的作用
1:接口继承注意
接口的继承:
:类继承具有单根性,接口可多重继承;
:接口继承多个接口的时候,派生接口名与父接口用冒号隔开,多个父接口之间用逗号隔开。
:派生接口想要重写继承接口的方法或者属性时,要用关键字new ;
2:开发封闭原则:
开发封闭原则:
定义:软件实体应该可以进行扩展,但是不可以修改 特性:
:对扩展是开放的
:对修改是封闭的,开放即可以操作,关闭即不可以操作
3:实例接口继承

类的实现
###########老鹰类################
class Eagle : Bird, IFlyable
{
public void fly()
{
Console.WriteLine("我是老鹰我可以飞"); }
public override void eat()
{
Console.WriteLine("我是老鹰我吃小鸡");
}
} ############鸵鸟类###############
class Ostrich:Bird {
public override void eat() {
Console.WriteLine("我是鸵鸟我吃青草");
} } #############麻雀类############### class Sparrow : Bird, IFlyable
{
public void fly()
{
Console.WriteLine("我是麻雀我可以飞");
}
public override void eat()
{
Console.WriteLine("我是麻雀我吃粮食");
}
} ############鸟类##################
abstract class Bird
{ public abstract void eat();
} ##########主类#####################
class Program
{
static void Main(string[] args)
{
Bird[] obj = {new Eagle(),new Sparrow(),new Ostrich()};
foreach (Bird item in obj){item.eat();}
IFlyable[] obj2 = {new Eagle(),new Sparrow()}; foreach (IFlyable item in obj2) { item.fly(); }
Console.ReadKey();
}
}
接口IFlyable:
interface IFlyable
{ //定义接口函数 //注意函数不能有结构体;不能有修饰符
void fly();
}
输出:

c# 第37节 接口的实现与继承的更多相关文章
- Android零基础入门第37节:初识ListView
原文:Android零基础入门第37节:初识ListView 之前我们学习的一些UI组件都比较简单,但是在实际开发中,会经常遇见列表界面设计,如通讯录.电话列表.信息列表等.那么从本节开始来详细学习列 ...
- c# 第38节 接口的实现
本节内容: 1:接口的两种实现是什么 2:隐式实现接口的说明 3:为什么有显式 以及显式声明格式 4:实现显式接口 1:接口的两种实现是什么 隐式实现接口:(当继承的父类直接没有相同的方法时) 即可用 ...
- 接口和抽象类是否继承了Object
我们先看一下Java的帮助文档对于Object的描述: Class Object is the root of the class hierarchy. Every class has Object ...
- JAVA与多线程开发(线程基础、继承Thread类来定义自己的线程、实现Runnable接口来解决单继承局限性、控制多线程程并发)
实现线程并发有两种方式:1)继承Thread类:2)实现Runnable接口. 线程基础 1)程序.进程.线程:并行.并发. 2)线程生命周期:创建状态(new一个线程对象).就绪状态(调用该对象的s ...
- [Java] 类和接口的初始化步骤 - 继承方面
类和接口在初始化化时,处理继承层级的方法不一样. 类继承的初始化:通过引用 static 字段,触发某个类的初始化,则声明该字段的类,以及该类的父类被初始化. 接口继承的初始化:通过引用 static ...
- 【Java面试题】60 接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承具体类(concrete class)? 抽象类中是否可以有静态的main方法?
接口可以继承接口.抽象类可以实现(implements)接口,抽象类可以继承具体类.抽象类中可以有静态的main方法. 问: 抽象类是否可继承实体类 (concrete class) 答: 抽象类是 ...
- 接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?
接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)? 答:接口可以继承接口.抽象类可以实现(implements)接口,抽象类 ...
- C#接口的实现和继承实践
1.基本概念 接口是一种契约规范,类似于抽象基类.包括方法,属性,索引器和事件作为成员,这些成员只是作为定义,并不在接口中具体实现. 接口创建时注意以下事项: 继承接口的任何非抽象类都必须实现接口的所 ...
- c# 第36节 接口的声明
本节内容: 1:字面理解接口 2:计算机的接口是什么呢 3:接口的声明 4:接口的注意点 1:字面理解接口 大家现在手机上,可能有很多app软件,比如天气预报的软件,有很多种,什么墨迹天气啊之类的等等 ...
随机推荐
- opensciencegrid - GridFTP 安装
最近配置一个GridFTP 用于测试其传输FTP性能, 在这里简单记录,备忘:使用本教程可以简单起一个GridFTP用于测试服务: 预配置环境: 测试系统:CentOS 7 1806 配置Yum仓库: ...
- JavaScript基础2
本节内容: 1:ECMA对象 2:string对象 3:Array对象 4:BOM对象 5:DOM对象之节点 6:DOM对象之EVENT事件 7:DOM节点的增删改查 8: 实例练习 http://w ...
- a迭代中的燃尽图统计
简单分析:项目一直在跟进,进展较缓,临近迭代结束,项目进度突飞猛进.
- number.toFixed和Math.round与保留小数
如果你baidu/google过或者自己写过保留两位小数,那下面这代码一定不陌生 Math.round(number*100)/100 那你使用过Number.prototype.toFixed这个方 ...
- Ubuntu 16.04 安装 mujoco, mujoco_py 和 gym
Mujoco (1)官网(https://www.roboti.us/license.html)注册 license,教育邮箱注册可以免费使用一年.注意:一个邮箱账号只能供一台主机使用. 填写个人信息 ...
- js 记录几个因惯性思维引发的代码BUG,开发思维方式的自我反省
壹 ❀ 引 在写这篇文章之前,对于取什么标题其实让我纠结了好几天,这篇文章中我想说的东西与引用类型数据有关,也与我们的惯性思维有关.本文中展示的几段代码都非常简单,原型都来自于我的日常开发,但让你立 ...
- python 学习(day1)
初识python python的创始人为吉多*范罗苏姆(Guido van Rossum).1989年圣诞节期间,开发出来的脚本解释程序. python是⼀⻔什么样的语言 python 是一门解释型语 ...
- java 接口中的成员变量与方法
java接口中变量的默认修饰符为 public static final int i = 3; 相当于 public static final int i = 3; java接口中方法的默认修饰符为 ...
- MySQL(6)---变量
MySQL(6)-变量 这里学习变量主要是为后面学习存储过程和函数做铺垫. 变量的分类 系统变量: 全局变量 会话变量 自定义变量: 用户变量 局部变量 一.系统变量 1.概述 说明:变量由系统定义, ...
- vue快速复习手册
1.基本使用 <!DOCTYPE html> <head> <meta charset="UTF-8"> <title>Vue的基本 ...