Java中的接口怎么实现?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中的接口怎么实现?相关的知识,希望对你有一定的参考价值。

参考技术A 举个面积的例子:在java中,定义一个接口,声明计算长方形面积和周长的抽象方法,再用一个类去实现这个接口,再编写一个测试类去使用这个接口。首先,接口必须单独存放,如果我们用eclipse编程的话,它们提示:The public type **** must be defined in its own file,意思是必须要定义在其自己的文件中,所以要为接口文件单独存放起来,举例,我们的接口要实现获到矩形的长,宽,面积,周长,所以定义以下的接口。public interface calrect \\x0d\\x0apublic abstract int calarea();\\x0d\\x0apublic abstract int calgirth();\\x0d\\x0apublic abstract int getx();\\x0d\\x0apublic abstract int gety();\\x0d\\x0a注意,定义接口就像定义类一样,接口的访问控制符只能用public,用public定义的接口可以被所有的类和包引用,而缺省的则只能被同一个包中的其他类和接口引用,这符合JAVA中访问控制符的一般要求,关于接口再引用其他接口则是后话。以上接口文件名为calrect.java.另外需要指出的是接口中不能给方法给出方法体。接下来,需要定义一个类来实现接口,因为不知道JAVA的内置矩形类是什么名,所以为了安全,将该类定义为RRect,这可以认为是一种安全策略。关于implements,可以参考其他资料。该类引用了接口calrect,所以必须对calrect中的方法一一实现。//定义矩形类 应用接口class RRect implements calrectprivate int x;\\x0d\\x0aprivate int y;public RRect ()\\x0d\\x0a x=3;y=4;\\x0d\\x0a\\x0d\\x0apublic int calarea()\\x0d\\x0a return x*y;\\x0d\\x0a\\x0d\\x0apublic int calgirth()\\x0d\\x0a return x*2+y*2;\\x0d\\x0a\\x0d\\x0apublic int getx()\\x0d\\x0a return x;\\x0d\\x0a\\x0d\\x0apublic int gety()\\x0d\\x0a return y;\\x0d\\x0a\\x0d\\x0a//接下来,定义一个测试类,所谓测试类,我理解为定义一个类,在其定义类RRect的对象,并验证其中的方法,看看是不是可以正常使用//定义Class1类\\x0d\\x0apublic class Class1\\x0d\\x0aRRect rect;\\x0d\\x0apublic static void main(String []args)\\x0d\\x0a RRect rect=new RRect();\\x0d\\x0a System.out.println("矩阵的长"+ rect.getx());\\x0d\\x0a System.out.println("矩阵的宽"+ rect.calarea());\\x0d\\x0a System.out.println("矩阵的面积"+ rect.calarea());\\x0d\\x0a System.out.println("矩形的周长 "+rect.calgirth());\\x0d\\x0a\\x0d\\x0a\\x0d\\x0a运行结果:矩阵的长3\\x0d\\x0a矩阵的宽12\\x0d\\x0a矩阵的面积12\\x0d\\x0a矩形的周长 14注:接口单存放,接口实现类和测试类可以存放在一个文件中

java axis调用webservice,接口方法中的数组型参数应该怎么传参

使用第三方jar包动态调用webservice,接口方法中存在数组型参数时,应该怎么调用

服务端接口方法:
public int sendDTMS(String[] mobiles, String addSerial, int smsPriority,
String sign, String msgGroup, boolean isMo, String tempId,
String[] params)

客户端调用:
Call call=setSendDTMSCallParams(this.getSendDTMSCall());
responseString=(String)call.invoke(params);

参数params设置:
Object[] params=new Object[]
null,
new String[]"111","222",
5,
null,
null,
false,
"681",
"4637"
;

当params中使用new String【】 传参时报错:
Exception in thread "main" AxisFault
faultCode: http://schemas.xmlsoap.org/soap/envelope/Client
faultSubcode:
faultString: Unmarshalling Error: 意外的元素 (uri:"", local:"mobiles")。所需元素为(none)

求大神帮忙,这样的接口我在使用axis调用时应该怎么做?紧急,高分

虽然我没用过你这个开发webservice,但用过xfire,建议你把数组改为string传值,然后那边进行split再转为数组 参考技术A 郭德纲的行啊

以上是关于Java中的接口怎么实现?的主要内容,如果未能解决你的问题,请参考以下文章

java中接口具有泛型,继承的时候该怎么处理

java里的interface接口类怎么用

java怎么调用别人给的接口

java里的interface接口类怎么用?

java中的接口interface

java中的 implements怎么用?