接口中的默认方法可以在test测试类中直接调用吗?

接口中的默认方法可以在test测试类中直接调用吗?

请尽量清晰完善地描述问题,以便大家给予专业的回复。

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

看下面的代码,可以这样使用:

interface IDemo{
default void show(){
System.out.println("接口的默认方法");
}
}
class Demo1 implements IDemo{
}
public class Demo {
public static void main(String[] args) {
// TODO Auto-generated method stub
Demo1 demo1=new Demo1();
demo1.show();
}
}

Demo1实现了IDemo接口,但是没有实现它里面的方法,这时候就可以使用Demo1的对象调用show()方法,打印输出"接口的默认方法",祝学习愉快!

好帮手慕珊 2017-05-16 13:43:13

先要创建接口的引用,指向实现类的对象,然后用实现类的对象去调用默认方法。老师在视频中有做介绍,见下图:
http://img1.sycdn.imooc.com/climg//591a9160000159fb07300565.jpg

祝学习愉快!

  • 提问者 慕姐8987590 #1
    没有啊,他调用的是SmartWatch重写的方法啊,不是接口中的方法
    2017-05-16 16:10:37
  • 提问者 慕姐8987590 #2
    哈喽?求问呀
    2017-05-16 18:08:17
  • 洋山芋的大哥哥 回复 提问者 慕姐8987590 #3
    SmartWatch使用了这个接口,必须重写接口里所有的方法,接口从本质上讲,是一种特殊的抽象类,是不能直接调用的
    2017-05-24 15:36:45
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师