接口
publicstatic void Main(String [] args)
{
IWorker james1=new James1();
IWorker james2=new James2();
james1.work("设计");
james2.work("编程");
//从这个例子我体会到了有了接口的好处,可以想象如果又来了新员工。
//如果不采用接口,而是每个员工都有一个单独的类,这样就容易出错。
//如果有接口这种协议约束的话,那么只要实现了接口就肯定有接口里声明的方法,我们只需拿来调用。
}//calss
//声明接口:IWorker 不包括常量,构造函数。成员不能是静态
public interface IWorker
{
//成员的声明
void work(string s);//声明一个方法,并不在接口中实现,只能在继承类中实现成员
}
//接口继承类1,在类里面实现具体方法
class James1:IWorker
{
//实现方法
public void work(string s)
{
messagebox.show("我的名字是James1,我的工作是" + s);
}
}
//继承类2
class James2:IWorker
{0
//实现方法
public void work(string s)
{
messagebox.show("我的名字是James2,我的工作是"+ s);
}
}
/*如果我们从设计的角度来看.一个项目中用若干个类需要去编写,由于这些类比较复杂,工作量比较大,这样每个类就需要占用一个工作人员进行编写.
比如A程序员去定Dog类,B程序员去写Cat类.这两个类本来没什么联系的,可是由于用户需要他们都实现一个关于"叫"的方法.这就要对他们进行一种约束.
让他们都继承于IBark接口,目的是方便统一管理.另一个是方便调用.当然了,不使用接口一样可以达到目的.只不过这样的话,这种约束就不那么明显,
如果这样类还有Duck类等等,比较多的时候难免有人会漏掉这样方法.所以说还是通过接口更可靠一些,约束力更强一些.
*/
/*
4.接口和抽象类的区别
接口用于规范,抽象类用于共性。抽象类是类,所以只能被单继承,但是接口却可以一次实现多个。
接口中只能声明方法,属性,事件,索引器。而抽象类中可以有方法的实现,也可以定义非静态的类变量。
抽象类可以提供某些方法的部分实现,接口不可以。抽象类的实例是它的子类给出的。接口的实例是实现接口的类给出的。
在抽象类中加入一个方法,那么它的子类就同时有了这个方法。而在接口中加入新的方法,那么实现它的类就要重新编写
(这就是为什么说接口是一个类的规范了)。
接口成员被定义为公共的,但抽象类的成员也可以是私有的、受保护的、内部的或受保护的内部成员
(其中受保护的内部成员只能在应用程序的代码或派生类中访问)。
此外接口不能包含字段、构造函数、析构函数、静态成员或常量。
还有一点,我们在VS中实现接口时会发现有2个选项,一个是实现接口,一个是显示实现接口。
实现接口就是我们平常理解的实现接口,而显示实现接口的话,实现的方法是属于接口的,而不是属于实现类的。
*/

浙公网安备 33010602011771号