C#高级进阶-[接口]方法
2018-03-22 本文已影响124人
xzhuan
Aitin原创稿件,转载请注明出处!
C#语法进阶 <抽象类>方法
/*
* 接口
* 1.使用Interface关键字 创建的数据类型
* 2.特点
* 2.1 接口是抽象的,是一组行为的抽象
* 2.2 接口只表达" Can do?" , 不表达" How do?"
* 2.3 接口只关注行为,不关注数据和行为的实现
* 2.4 接口是规范,定义一组对外行为的规范,要求它的实现类 必须遵循
* 2.5 实现类必须实现 接口的所有成员
* 2.6 接口中不能包含字段, 可以包含[方法,属性,索引器,事件]
* 2.7 接口中所有成员不能加任何访问修饰符,默认公有
* 2.8 接口中所有成员不能有实现, 全部默认抽象的
* 3.作用 适用情况
* 3.1 扩展一个已有类的行为
* 3.2 规范不同类型的行为,达到不同类型的行为一直
* eg:
* [行为接口] 吃,飞,走,游泳
* 动物:
* 鸟: 吃,飞,走
* 狗: 吃,走
* 鱼: 吃,游泳
* 4.使用
* 4.1 接口之间可以继承,且可以多继承
* 4.2 类与类→单继承,类与接口→多实现,接口与接口→多继承
* 4.3 结构(struct) 可以实现接口, 但不能继承
* 4.4 实现方式:
* 4.4.1 隐式实现
* 特点: 1.写法 修饰符public+实现方法
* 4.4.2 显式实现
* 特点: 1.写法 (修饰符 默认private)接口名.实现方法
* 2.调用 只能通过接口类型的引用 调用
* 3.作用
* 解决 接口中的成员对实现类不适用的问题
* 解决 多个接口实现时的二义性
*
*/
namespace LearnDemo20180322
{
class Program
{
static void Main(string[] args)
{
Hawk hawk = new Hawk();
}
}
//鸟 老鹰 麻雀 鸵鸟 企鹅
abstract class Bird
{
int leg;
string feather;
abstract public void Game();
}
/// <summary>
/// 接口
/// </summary>
interface IAction
{
void Walk();
void Fly();
void Swimm();
}
/// <summary>
/// 老鹰
/// </summary>
class Hawk : Bird, IAction
{
public override void Game() //抽象重写
{
}
public void Fly() //隐式实现 接口
{
}
public void Walk() //隐式实现 接口
{
}
void IAction.Swimm() //显式实现 接口 <老鹰 不会游泳,使用显式实现,一定程度 避免接口污染>
{
}
}
}