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软件,比如天气预报的软件,有很多种,什么墨迹天气啊之类的等等 ...
随机推荐
- TensorFlow从1到2(十五)(完结)在浏览器做机器学习
TensorFlow的Javascript版 TensorFlow一直努力扩展自己的基础平台环境,除了熟悉的Python,当前的TensorFlow还实现了支持Javascript/C++/Java/ ...
- 机器学习实战之KNN
KNN也称K-近邻算法,简单来说,KNN采用测量不同特征值之间的距离的方法进行分类. 优点:精度高,对异常值不敏感,无数据输入假定. 确定:时间复杂度.空间复杂度较高 适用数据范围:数值型和标称型 工 ...
- 201871010112-梁丽珍《面向对象程序设计(java)》第一周学习总结
项目 内容 这个作业属于哪个课程 <任课教师博客主页链接> https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 <作业链接地址> ...
- Java之Random类
什么是Random类 此类的实例用于生成伪随机数,使用此类中的方法能够得到一个随机数. Random使用步骤 查看类 java.util.Random :该类需要 import导入使后使用. 查看构造 ...
- awk命令使用整理
1. awk默认以空格分隔, 可摘出指定位置的内容, 通常用法如下( 文件名称为file.txt ): 文件中行内容为: 12:3 a 4:56 b awk '{print $1}' ...
- 【python爬虫】正则表达式
一.数据的分类 1.结构化数据 特点:数据以行为单位,每一个数据表示一个实体.每一行数据的属性都是一样的. 举例:关系型数据库中的表就是结构化数据. 处理方法:sql 2.半结构化数据 特点:结构化数 ...
- golang数据结构之冒泡排序
//BubbleSort 冒泡排序 func BubbleSort(arr *[]int) { ; i >= ; i-- { ; j-- { if (*arr)[j] > (*arr)[i ...
- 利用Runtime对Ivar实例变量进行共用的归档和解档方式
一.介绍 在OC中每一个对象持有的变量都是实例变量,实例变量包括成员变量和属性变量,在runtime中用Ivar表示对象的实例变量.其实,runtime源码中可以看到,Ivar也是一个结构体(基本上在 ...
- IT兄弟连 Java语法教程 Java语法基础 经典面试题
1.Java语言中有几种基本类型?分别是什么?请详细说明每种类型的范围以及所占的空间大小? Java语言中有8中基本类型,分别是代表整形的byte.short.int和long,代表浮点型的float ...
- Map拼接URL地址
import java.util.HashMap; import java.util.Iterator; import java.util.Map; /** * @Author: hoje * Des ...