java中,如果一个方法A的参数是一个接口,那在主方法中怎么调用这个方法?

publicclassbb{publicvoidshow(Bsursur){sur.sub();}publicstaticvoidmain(Stringargs[]){/... public class bb {
public void show(Bsur sur)
{
sur.sub();
}
public static void main(String args[]){
//怎么调用show()方法
//为什么语句:bb x = new bb();x.show();会报错?
}
}
展开
 我来答
yinfengnong
2018-02-09 · TA获得超过5619个赞
知道大有可为答主
回答量:2344
采纳率:89%
帮助的人:2297万
展开全部

你需要创建一个类,实现 Bsur 接口,然后创建这个类的一个实例,传给 show 方法,例如:

class AA implements Bsur {
    // 实现 Bsur 接口的 sub 方法
    public void sub () {
        System.out.println("我是 sub 方法。");
    }
}

创建 AA 实例,传给 show 方法。

AA aa = new AA();
x.show(aa);
追问
那如果这个Bsur接口是继承另外两个接口做出来的,没有用类创建它,那show()的参数要怎么写?还是说,不管接口是不是继承别的接口产生的,都需要用类来实现?
追答

必须要有一个类实现 Bsur ,匿名类也可以的,不然这个接口就没有任何作用。使用匿名类如下:

x.show(new Bsur() {
@Override
public void sub() {
System.out.println("我是 sub 方法。");
}
});
飞扬跋扈2017
2018-02-09 · 超过39用户采纳过TA的回答
知道小有建树答主
回答量:94
采纳率:75%
帮助的人:32.1万
展开全部
正常情况下,接口都有实现类,
没有实现类及接口大多是一个标记比如Serizable(好像是这么写的)序列化接口,克隆able那个接口。这种东西正常开发用不到。
至于你代码的错误,你的show方法是有参的,所以x.show()括号里,必须写一个Bsur接口或他的实现类
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式