c# 第37节 接口的实现与继承
2024-09-07 22:32:29
本节内容:
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();
}
输出:
最新文章
- 【JAVA与XML、dtd约束、Schema约束】
- response实现文件下载
- angular router-ui
- oracle-SQL语言基础-事务控制命令命令
- [改善Java代码]使用valueOf前必须进行校验
- 如何关闭android studio开发环境自动保存
- 【持续集成】GIT+jenkins+snoar——GIT
- oracle03
- 配置文件properties读取使用的好方法
- python flask框架 tempates 模版的使用
- redux-thunk 源码学习记录
- vmware 中配置centos 7 静态IP
- MFC图片操作
- Microsoft Visual Studio 2013安装及试用
- jquery 动态展示查询条件
- 总结MySQL修改最大连接数的两个方式
- ant design Modal遮罩层颜色加深 解决方案
- 【Linux】如何改变文件的属性与权限
- 《Java程序设计》第三章-基础语法
- 转 How do GraphQL remote schemas work
热门文章
- java8 的files、path类相关文件遍历API
- jt格式文件与3D数据压缩
- 201871010135 张玉晶 《面向对象程序设计(java)》 第一周学习总结
- 2019年最新50道java基础部分面试题(二)
- WPf 带滚动条WrapPanel 自动换行 和控件右键菜单
- <;Math>; 29 365
- __format__
- 图片(jpg,png,tif等)批量转dicom(dcm)格式
- golang数据结构之递归解决迷宫问题
- django--通过jwt获取用户信息的两种方式