接口的案例(一)

用Interface关键字定义的数据类型,接口 定义一系列属性,事件,方法,而不提供任何实现。如果实现,必须有派生类实现。注:属性于事件可以看作特殊的方法。

接口的继承:

接口实现:类继承接口,类必须实现该接口的列出的成员;

接口的继承:接口继承,将多个接口组合在一起来创建新的功能。

创建一个IShapeObj接口,里面定义两个方法area和show。Circle,Square,Rectangle三个继承于此接口:

View Code
     
     
1 namespace Test
2 {
3 interface IShapeObj
4 {
5 void area();
6 void show();
7 }
8 class Circle : IShapeObj
9 {
10 public void area()
11 {
12 Console.WriteLine( " Circle的area()方法: " );
13 }
14 public void show()
15 {
16 Console.WriteLine( " Circle的show()方法: " );
17 }
18 }
19 class Square : IShapeObj
20 {
21 public void area()
22 {
23 Console.WriteLine( " Square的area()方法: " );
24
25 }
26 public void show()
27 {
28 Console.WriteLine( " Square的show()方法: " );
29 }
30 }
31 class Rectangle : IShapeObj
32 {
33 public void area()
34 {
35 Console.WriteLine( " Rectangle的area()方法: " );
36
37 }
38 public void show()
39 {
40 Console.WriteLine( " Rectangle的show()方法: " );
41 }
42 }
43 class Program
44 {
45 static void Main( string [] args)
46 {
47 IShapeObj[] shapeobj = new IShapeObj[ 3 ];
48 shapeobj[ 0 ] = new Circle();
49 shapeobj[ 1 ] = new Square();
50 shapeobj[ 2 ] = new Rectangle();
51 shapeobj[ 0 ].area();
52 shapeobj[ 0 ].show();
53 shapeobj[ 1 ].area();
54 shapeobj[ 1 ].show();
55 shapeobj[ 2 ].area();
56 shapeobj[ 2 ].show();
57
58
59
60 }
61 }
62 }

继承于多个接口:

View Code
     
     
1 public interface ISwitch1
2 {
3 void On();
4 }
5 public interface ISwitch2
6 {
7 void Off();
8 }
9 public abstract class Switch1
10 {
11 public abstract void On();
12 }
13 public abstract class Switch2
14 {
15 public abstract void Off();
16 }

派生类书写于调用方法:

View Code
     
     
1 public class B : Switch1, ISwitch1, ISwitch2
2 {
3 public override void On()
4 {
5 Console.WriteLine( " B -- on " );
6 // throw new NotImplementedException();
7   }
8 void ISwitch1.On()
9 {
10 Console.WriteLine( " B -- ISwitch1 --- on " );
11
12 }
13 public void Off()
14 {
15 Console.WriteLine( " B -- ISwitch1 --- Off " );
16 }
17 }
18
19 public class A : Switch1, ISwitch2
20 {
21 public override void On()
22 {
23 Console.WriteLine( " A---ON() " );
24 // throw new NotImplementedException();
25   }
26 public void Off()
27 {
28 Console.WriteLine( " A--off " );
29 }
30 }
31 static void Main( string [] args)
32 {
33
34 // A a = new A();
35 // a.On();
36 // a.Off();
37 // Switch1 s = new A();
38 // s.On();
39 // ISwitch2 i = new A();
40 // i.Off();
41   B b = new B();
42 b.Off();
43 b.On();
44
45 }
怀揣着一点点梦想的年轻人
相信技术和创新的力量
喜欢快速反应的工作节奏
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当然,下面是一个简单的Ruby接口案例: ```ruby require 'sinatra' # GET请求的接口 get '/api/hello' do content_type :json { message: 'Hello, World!' }.to_json end # POST请求的接口 post '/api/greet' do content_type :json name = params[:name] { message: "Hello, #{name}!" }.to_json end # PUT请求的接口 put '/api/update/:id' do content_type :json id = params[:id] # 执行更新操作... { message: "Record with ID #{id} has been updated." }.to_json end # DELETE请求的接口 delete '/api/delete/:id' do content_type :json id = params[:id] # 执行删除操作... { message: "Record with ID #{id} has been deleted." }.to_json end ``` 上述例子使用了Sinatra框架,它是一个轻量级的Ruby Web框架,适合快速搭建简单的接口。在上面的代码中,我们定义了四个不同的路由,分别对应不同的HTTP请求方法(GET、POST、PUT、DELETE)。 对于GET请求的`/api/hello`接口,它返回一个JSON格式的响应,包含一条简单的问候消息。 对于POST请求的`/api/greet`接口,它从请求参数中获取名字,并返回一个包含问候消息的JSON响应。 对于PUT请求的`/api/update/:id`接口,它从URL参数中获取ID,并执行相应的更新操作,然后返回一个JSON响应。 对于DELETE请求的`/api/delete/:id`接口,它从URL参数中获取ID,并执行相应的删除操作,然后返回一个JSON响应。 以上只是一个简单的示例,实际的接口可能涉及更复杂的逻辑和数据处理。但这个例子可以帮助你了解如何使用Ruby构建一个简单的接口

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值