​默认方法man()前为啥可以加public修饰符?谢谢!

​默认方法man()前为啥可以加public修饰符?谢谢!

package com.yihuanla.interface1;

interface ILove extends ILo,IO {

public static final int m=10;

public default void man() {
System.out.println("2");
}

//静态方法
static void run() {

}

}

​默认方法man()前为啥可以加public修饰符?

正在回答

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

1回答

同学你好,因为ILove是一个接口,接口的主要作用就是定义规范的,要想别的类实现这个ILove,那它里面定义的规范得是public的,否则定义成private是不是没有意义呢。所以接口里默认的访问权限就是public的。而defalut是什么意思呢?如果你不加defalut,那么接口里的方法是不能实现的,只能定义它,不能实现它例如

public void man();

后面只能跟一个分号,而你加上了default呢,就可以写具体的实现方法了,

{System.out.println("2");}

这样子类再implements ILove时就不用实现man()了,可以直接使用它。这也就是http://class.imooc.com/course/qadetail/262803

这里的疑问。

  • Ceoking 提问者 #1
    ①、接口里的方法的访问修饰符可以是protected吗? ②、“这样子类再implements ILove时就不用实现man()了,可以直接使用它。”这句话怎么理解?是不是这样理解——实现类实现ILove实现类的子类就不用实现man()并可以直接使用 ?
    2020-11-03 19:53:28
  • 好帮手慕雪 回复 提问者 Ceoking #2
    1)不可以。它只能是public,或者不写。不写也是public。 2)嗯嗯,是的
    2020-11-04 09:28:59
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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