[public] interface I…able
{
成员;
}
接口与接口直接可以继承,并且可以多继承。
接口不能继承一个类,类可以继承接口。
实现接口的子类,必须实现该接口的全部成员。
using System;
namespace _092_多态之接口
{
class Program
{
static void Main(string[] args)
{
//接口就是一个规范(都能用,广泛普遍性),能力
Student s = new Student();
s.Live();
s.KouLan();
s.Fly();
Console.ReadKey();
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace _092_多态之接口
{
class Person
{
public void Live()
{
Console.WriteLine("我是人,我可以吃喝拉撒睡");
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace _092_多态之接口
{
class Student : Person, IKouLanable,IFlyable
{
public string Name { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
public void Fly()
{
Console.WriteLine("我tm会飞");
}
public void KouLan()
{
Console.WriteLine("我也可以扣篮");
}
public string Test()
{
throw new NotImplementedException();
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace _092_多态之接口
{
interface IKouLanable
{
void KouLan();
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace _092_多态之接口
{
interface IFlyable //接口可以有 属性、方法、索引器(本质全是方法)
{
//接口中的成员不允许添加访问修饰符,默认就是public
void Fly();
string Test();
public static void TestTwo()
{
Console.WriteLine("我是接口中的方法体");
}
//string _name;//接口中不能包含实例字段
string Name
{
get;
set;
}
}
}
接口练习
using System;
namespace _094_接口练习
{
class Program
{
static void Main(string[] args)
{
//真的鸭子嘎嘎叫,橡皮鸭子唧唧叫,木头鸭子吱吱叫;真鸭子会游泳,橡皮鸭子靠发动机游泳,木头鸭子不会
RealDuck rd = new WoodenDuck(); //木鸭子不会游泳,但是继承了父类 //new RealDuck();
rd.Bark();
rd.Swim();
Swimming s = new RubberDuck();
s.Swim();
Console.ReadKey();
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace _094_接口练习
{
class RealDuck:Swimming
{
public virtual void Bark()
{
Console.WriteLine("真的鸭子嘎嘎叫");
}
public void Swim()
{
Console.WriteLine("真鸭子会游泳");
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace _094_接口练习
{
class RubberDuck:RealDuck,Swimming
{
public override void Bark()
{
Console.WriteLine("橡皮鸭子唧唧叫");
}
public void Swim()
{
Console.WriteLine("橡皮鸭子靠着发动机游泳");
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace _094_接口练习
{
class WoodenDuck:RealDuck
{
public override void Bark()
{
Console.WriteLine("木头鸭子吱吱叫");
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace _094_接口练习
{
interface Swimming
{
void Swim();
}
}