导航

« 利用Visual C#实现任务栏通知窗口【转载】 这个夏天,不要颓废 »

接口与抽象类

        接口是一种声明,他规定了一个类要包含的带有指定参数的一系列专门方法。接口本身不包含任何方法的实现代码,只是声明公有方法的签名(也就是说在声明的时候不用public)。在每个实现该接口的类中必须实现每个方法。如:

public interface IAnimal
{
    //接口中没有方法的实现,也没有public修饰符
    void Run();
    int Beat(string name);
}

public class Dog : IAnimal
{
    public Dog()
    { }
    //接口的继承类中必须实现接口的所有方法
    public void Run()
    {
        // TODO
    }
    public int Beat(string name)
    {
        // TODO
    }
}

        抽象类声明了一个或多个没有实现的方法。如果一个方法被声明为抽象方法,所对应的类必须也声明为抽象类。同时,一个抽象类中至少有一个抽象方法,非抽象方法可有可无。在继承该抽象类的派生类中必须实现所有抽象方法。不能创建抽象类的实例。如下:

public abstract class Animal
{
    protected int height, weight;
    public void Run()
    {
        // TODO
    }
    public abstract int Beat(string name);
}

public class Cat : Animal
{
    public Cat()
    { }
    //Cat继承自抽象类Animal,拥有Run()方法,同时必须实现抽象方法Beat()。
    public override int Beat(string name)
    {
        // TODO
    }
}

        接口和抽象类有很多相似之处。由于C#没有多重继承的概念,所以要实现多重继承还必须依靠接口。在很多情况下可以用接口代替抽象类,当然要继承属性那就用接口不行了。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

最近发表

Powered By SunK

Copyright 2005-2006 sunk.cn 蜀ICP备06007105号