不鸣则已

海阔凭鱼跃,天高任鸟飞!

首页 新随笔 联系 订阅 管理

1、接口

(1)接口是一种规范、协议,定义了一组具有各种功能的方法(属性、索引器本质是方法)。

(2)接口存在的意义:多态。多态的意义:程序可扩展性。

(3)接口解决了类的多继承的问题。

(4)接口解决了类继承以后体积庞大的问题。

(5)接口与接口之间可以继承,并且可以多继承。

(6)接口中的成员必须不能有实现,接口不能实例化。

(7)接口中的成员不能有访问修饰符,默认Public。(可以用反编译工具查看)

(8)接口中可以有属性、方法、索引器等,但不能有字段。

(9)实现接口的子类必须实现该接口的全部成员,如果不想实现接口中的成员,可以把该成员实现为abstract。

(10)当一个类同时继承了一个类和一个接口,类写在接口前面。

//(6)接口中的成员必须不能有实现,接口不能实例化。
public interface IFly
{
    void Fly();
}

public interface ISwim
{
    void Swim();
}

//潜水,会潜水的一定会有用
//(5)接口之间可以实现多继承。
public interface IDiving : ISwim
{
    void Diving();
}

public class Animal
{
    private string _name;

    public string Name
    {
        get { return _name; }
        set { _name = value; }
    }

    public void Say()
    {
        Console.WriteLine("I am " + this.Name + "!");
    }
}

//(10)当一个类同时继承了一个类和一个接口,类写在接口前面。
//(3)接口解决了类的多继承的问题。
//(4)接口解决了类继承以后体积庞大的问题。尽量每个接口只有一个功能
public class Swan : Animal, IFly, ISwim
{
    public void Fly()
    {
        Console.WriteLine("I can fly!");
    }

    public void Swim()
    {
        Console.WriteLine("I can swim!");
    }
}

//(9)实现接口的子类必须实现该接口的全部成员,如果不想实现接口中的成员,可以把该成员实现为abstract。
public abstract class Amphibians : Animal, IFly, ISwim
{
    public abstract void Fly();

    public abstract void Swim();
}

public class WildDuck : Amphibians
{
    public override void Fly()
    {
        Console.WriteLine("I can fly!");
    }

    public override void Swim()
    {
        Console.WriteLine("I can swim!");
    }
}
接口代码演示

 

posted on 2013-12-04 23:11  唐群  阅读(199)  评论(0编辑  收藏  举报