您的位置:首页 > 其它

抽象与接口

2008-04-15 16:18 134 查看
抽象

什么是抽象,抽象就相当于一个非实体的描述。也就是说抽象不可以实例化,但是可以被继承,抽象类中可以包含实现,但是只要没有实现那么这个类必须规定为抽象类。

.NET 2.0面向对象编程揭秘 中它是这样被描述的。

抽象中有抽象类,抽象方法,抽象属性。

1、抽象方法

呵呵,我更喜欢先说抽象方法,因为有抽象发放抽象类才能存在,当然不是说所有的抽象类里面都必须有抽象方法。我们尝试先去理解抽象类,至于说为什么这么写我在后面说就是了,那么怎么写呢。抽象方法既然为抽象,那么就不包含任何的实现内容。

普通类里面我们写print方法是这么写的

public void print()

而抽象类中的print方法呢,自然她没有实现,哪么我们就应该这么写

public abstract void print();
我们先不管它到底是为了什么我们先将她这么写就是了。

2、抽象属性

抽象属性和抽象方法的基本原理应该是一致的,都是没有任何实现的。

在普通里面我们这么写我们的一个属性

public string Name

{

get{return name;}

set{name=value;}

}
而在我们的抽象属性中我们不需要包含任何实现,就可以这么写

public abstract string Name

abstract class Fruit //抽象类

class Apple : Fruit //苹果

class Pineapple : Fruit //菠萝

好了 。哪么我们怎么使用这个抽象类中的内容的呢 。这个看下面:

Fruit f;

f = new Apple();

f.Message="Apple";

f.GrowInArea();

f = new Pineapple();

f.Message="Pineapple";

f.GrowInArea();

接口

什么是接口呢。。。我第一次听老师讲解到这个内容的时候也是稀里糊涂的,根本不知道那东西是干嘛的。每个东西的存在都有她的必要性,而我们的接口呢,当时根本没有什么程序要用到接口,也没什么太在意,但是现在程序越来越大的时候,不规范的代码到处都是,就想到有没有什么其他方法,为我们规定比较好的编程方式呢。于是我学习了接口。

现在才理解接口,就是对外提供的模型,你所实现的内容对着这个模型做就好了。

我们首先示例一个简单的接口

public interface Icall

在.net2.0面向对象编程揭秘书中说。接口是一个纯正的抽象类,也就是说,相当与一个抽象类中没有任何实现,她所有的方法都是抽象方法。而我们要实现她的时候就是继承,然后重写,而这里的重写我们不需要添加OVERRIDE关键字,只因为它是接口,就是将方法放在那里给你重写的,你不写还就不行了。(不遵守我的标准就别使用我的接口,就这么简单,是不是很霸道,呵呵,事实就是如此,没有规矩不成方圆么)

那么我们现在来实现这个接口的一个新的类看哈子、

public class mycall:Icall

{

public void call()

{

Console.WriteLine("电话来了,接电话了!");

}

}

而我们怎样去调用这个方法呢 。

mycall m_mycall=new mycall;

m_mycall.call();

这样就可以了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: