什么是Java接口(Interface)

定义

    接口描述的是一组需求,也就是一个类想要符合这个接口就必须满足这些需求,具体来讲就是实现这个接口中的方法。想要某个对象获得某个服务,就必须让该对象所属的类实现对应的接口,也就是该服务需要调用接口中的方法才能给你提供你想要的服务,那么你的类就必须实现这个方法(实现接口),否则没法提供服务。通俗的讲就是你的类必须符合(实现)这个特定的接口,我才能够给你提供服务。

特性

  • 方法都是public方法,默认是public,声明时不要提供。
  • 接口中没有实例字段(成员变量),但可以包含常量。
  • 接口之间允许多继承(extends),一个类可以实现多个接口(implements),用逗号分隔多个接口。
  • 无法通过new运算发构造接口对象实例,但是可以声明接口变量来引用实现该接口的类的对象。
  • 接口中的字段默认是public static final 修饰。也就是常量。
  • 接口中可以包含抽象方法和具体实现的方法。
    • 抽象方法默认是public abstract修饰。
    • 静态方法可以具体实现,public static 修饰。
    • private修饰的方法可以是静态或实例方法,都是具体实现并且只能在接口中使用(private的),作为其他方法的辅助方法。
    • 私有方法和公共静态方法不能被实现类覆盖。
    • default(默认)修饰的方法必须具体实现,默认方法中可以调用其他方法。default方法只能在接口中实现不能被实现类覆盖。

默认方法冲突

  有时候一个接口定义了一个默认方法,超类或者另外一个接口也定义了一个同样的方法,那么实现类该如何选择?

  • 超类优先原则,一个类继承了一个超类和一个或多个接口,在接口中定义了一个默认方法,超类中也实现了同样的方法,那么始终都是继承超类的方法,接口的方法会被忽略。
  • 重新覆盖该方法,两个或者多个接口实现了同样的默认方法,那么就必须重新覆盖这个默认方法(这里可以覆盖),如果一个接口实现了默认方法,另外的接口只是定义了相同的方法没有实现,那么也得在实现类中重新覆盖。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值