快捷搜索:  as  2018  FtCWSyGV  С˵  test  xxx  Ψһ  w3viyKQx

葡京娱乐场网址所有平台:【UML入门】7、类图class的实现关系Realization



接口的观点

接口是一组没有实现的操作的聚拢。接口只供给操作的声明,不供给任何响应的功能代码。详细的功能代码由应用该接口的类实现,这叫做实现关系。

一样平常意义的操作:

public void turnUp()

{Console.WriteLine("{0}风扇加速迁移转变",name);

}

没有实现的操作:

public void turnUp();

c#中定义接口的措施

[可见性] interface 接口名{[返回值类型] 措施名([参数]);}

接口中只能包孕措施、属性、索引器和事故的声明,没有字段和构造函数。

接口中的操作都被视为公有的,不必要添加可见性。

接口中只能供给措施的款式声明,而不能包孕措施的实现,以是接口措施的声明总因此分号停止。

接口的符号

例如:

public interface turn//开关

{void turnUp();

void turnDown();}

接口的实现

接口中声明的措施的真正实现是由类来完成的,类必须实现该接口中所定义的所有措施。一个接口可以由多个类来实现,而在一个类也可以实现一个或多个接口。

class类名:接口名列表

{……

}

提示:要实现接口,必须在类名后包括接口,然后供给接口的每一个成员的实现。

留意:察看上例中接口成员和类中响应的实现的造访类型的写法,在接口成员的声明中不必要任何造访修饰符,而在类中响应接口成员实现定义中则都用public修饰符。

接口的感化:

1、接口拟订了一组规范,实现接口的所有的类都必须遵守这套规则。

经常碰到这样的环境,在父类内定义了一个操作,指望它的子类能够承袭。但这个操作对付父类自身而言,没有需要编写任何代码,无意偶尔也其实不知道该编写什么代码。这时,我们就不去实现这个操作,接口便是这样一组操作的聚拢。

法度榜样演示:

public interface animal

{void sound();

}

dog1class dog : animal

{public string name;

public int legs;public dog(string x, int y)

{name葡京娱乐场网址所有平台 = x;

legs = y;}

public void sound(){

Console.WriteLine(name + "的叫声为:" + "汪汪");}

}dog

class cat : animal

{public string name;

public int legs;public cat(string x, int y)

{name = x;

legs = y;}

public void sound(){

Console.WriteLine(name + "的叫声为:" + "喵喵");}

}cat

class chick : animal

{public string name;

public int legs;public chick(string x, int y)

{name = x;

legs = y;}

public void sound(){

Console.WriteLine(name + "的叫声为:" + "咯咯达");}

}chick

class Program

{static void Main(string[] args)

{animal x;

x = new dog("小狗", 4);

x.sound();

x = new cat("小猫", 4);x.sound();

x = new chick("小鸡", 2);

x.sound();}

}Program

从设计的角度来看,一个项目中有多个类必要去编写,因为事情量对照大年夜,每个类可能由不合的人进行编写,比如A法度榜样员去写Dog类,B法度榜样员去写Cat类。这两个类原先没什么联系的,可是因为用户必要他们都实现一个关于“叫”的措施.这就要对他们进行一种约束,让他们都承袭于animal接口,目的是方便统一治理,也方便调用。

当然了,不应用接口一样可以达到目的。只不过这样的话,这种约束就不那么显着,假如这样的类还有Duck类等等,对照多的时刻难免有人会遗漏落这样措施,以是说照样经由过程接口更靠得住一些,约束力更强一些。(摘自互联网)

2、维持法度榜样的可扩展性。(例如上面的例子中,假如有其他的动物类..)

3、一个类可以实现多个接口。可以在同一个类中同时实现多个接口,即实现多重承袭。要实现多个接口,需将这些接口用逗号分开。

法度榜样演示:模拟手机即可打电话又可以视频电话

public interface IPhone

{void call();

}public interface IVideo

{void show();

}

实现接口:

cl葡京娱乐场网址所有平台ass visualPhone:IPhone,IVideo

{private string phoneName,videoName;

public visualPhone(string name1,string name2){

phoneName = name1;videoName = name2;

}public void call()

{Console.WriteLine("{0}开始通话",phoneName);

}public void show()

{Console.WriteLine("{0}开始视频",videoName);

}}

节制台法度榜样:

class Program

{static void callShow(IPhone x,IVideo y)

{x.call();

y.sho葡京娱乐场网址所有平台w();}

static void Main(string[] args)

{IPhone葡京娱乐场网址所有平台 m = new visualPhone("步步高", "");

IVideo n = new visualPhone("", "西门子");callS葡京娱乐场网址所有平台how(m, n);

}}

应的类图:

接口的特征

接口中只能包孕措施、属性、索引器和事故的声明,没有字段和构造函数和析构函数、不能直接被实例化。接口不能自己实现其操作,而是由响应的类来实现。一个类可以实现多个接口。

工具图(Object Diagram)

工具是类的实例,工具图也可看作是类图的实例。

工具图与类图的关系

工具图实质上是类图的实例,主要用于懂得系统在某个特准时候的详细环境,以求发明类图中的差错,进而修正类图。

工具的符号

与类的图形相似,但有如下差别:

1、工具只着名称和属性两个分栏,没有操作分栏。

2、工具的名称要加下划线

3、工具的属性应有详细的值。(例如上面的工具图)

工签字的三种款式

工具图的组成

提示:工具图没有多重性,由于所有的链都是一对一的。

总结

关于类图的相关到这里已经算是停止了,下面将总结包图.....

您可能还会对下面的文章感兴趣: