6.1 接口

6.1.1接口概念

接口不是类,而是对类的一组需求描述。

接口绝不能含有实例域。
不能构造接口的对象,但是可以申明接口的变量。
接口变量必须引用实现了接口的类对象。

Java8可以在接口中实现方法。

在实现接口时,必须把方法声明为public;否则,编译器将认为这个方法的访问属性是包可见性,即类的默认访问属性,之后编译器就会给出试图提供更严格的访问权限的警告信息。

在比较大整数时,应该使用Integer.compare;Comparable非负整数,且绝对值不超过(Integer.MAX_VALUE-1)/2;

Double.compare(x,y);
Arrays.sort();//排序必须实现Comparable接口

6.1.4静态方法

Java SE8中允许在接口中增加静态方法。

public interface Path{
   public static Path get(String frist,String..more){
   return FileSystem.getDefault().getPath(first,more);
  }
}

6.1.5接口默认方法

可以为接口方法提供一个默认实现。必须使用default修饰符。

6.1.6解决默认方法冲突

  • 超类优先

如果接口类提供了一个具体方法,同名而且有相同参数类型的默认方法会被忽略。

  • 接口冲突

如果一个接口提供了一个默认方法,另一个接口提供了一个同名而且参数类型相同的方法,都必须覆盖这个方法来解决冲突。

//一个类扩展了超类,同时实现了一个接口,并从超类和接口继承了相同的方法。
class Student extends Person implements Named{...}
//在这种情况,只会考虑超类方法,接口的所以默认方法都会被忽略。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值