接口的特点:
1.接口是一种规范。
2.只要一个类继承了一个接口,那么这个类就必须实现这个接口中的所有的成员。
3.接口不能被实例化。(也就是不能new)
4.接口中的成员不能加访问修饰符,接口中成员的修饰符默认是public,是不能修改的。
5.接口中的成员是不能有任何实现的。
6.接口中有方法,属性,索引器,事件,但是不能有字段。(因为接口中的成员修饰符都是public ,而字段的修饰符是private.)
7.接口之间是可以继承的,并且可以多继承。
8.一个类只能继承一个类,但是可以继承多个接口。
9.如果一个抽象类继承了一个接口,那么必须由这个抽象类的子类去实现这个接口。(因为抽象类是不能被实例化的,也就不能实现接口中的成员;只能由子类去实现接口中的全部成员,从而来实现多态。)
实例代码:
class Program
{
static void Main(string[] args)
{
IFly ifly = new SupperMan();//new Teacher();//new Student();
ifly.Fly();
Console.ReadKey();
}
}
public class Person
{
}
public interface IFly
{
void Fly();
}
public class Student : Person, IFly
{
public void Fly()
{
Console.WriteLine("学生也可以飞了");
}
}
public class Teacher : Person, IFly
{
public void Fly()
{
Console.WriteLine("老师也会飞了");
}
}
public class SupperMan : IFly
{
public void Fly()
{
Console.WriteLine("超人会飞了");
}
}
class Program
{
static void Main(string[] args)
{
I1 i = new StudentSon();
i.Fly();
Console.ReadKey();
}
}
/// <summary>
/// 接口
/// </summary>
public interface I1
{
void Fly();
}
/// <summary>
/// 抽象类
/// </summary>
public abstract class Student : I1
{
public void Fly()
{
Console.WriteLine("如果抽象类继承了接口,那么需要子类去实现这个接口");
}
}
public class StudentSon : Student
{
}