首页 > 代码库 > 接口(interface)小结
接口(interface)小结
概念:
接口不是类,而是对类实现的一组描述,这些类需要实现接口所描述的形式
以Comparable接口为例:
public interface Comparable { int compareTo(Object other); }
在实现类中,必须有:
int compareTo(Employee other)
注意:接口中的所有方法自动属于public.因此,在声明关键字时可以省略public.
该接口有个未说明的附加要求:在调用x.compareTo(y)中,该方法必须确实标胶两个对象的内容,并返回结果.当x>y返回正数;x=y返回0;x<y返回负数.
现在实现一个对Employee类对于雇员薪水的比较:
class Employee implements Comparable<Employee> { public int compareTo(Employee other) { return Double.compare(salary, other.salary); } . . . }
接口的特性:
在接口中不能存在实例域或静态方法(静态方法在JDK8后允许使用了),但是可以存在常量
(与接口中的方法被自动设置为public一样,接口中的域将被自动设置为public static final)
规范:虽然public/static/final可以使方法或域指代明确,但是出于规范,建议不要写这些关键字,这样可以更加清晰
默认方法冲突的解决方式:
如果在一个接口中定义了一个方法定义为默认方法,然后又在另一个父类或接口中定义了同样的方法,该如何解决呢?
- 父类优先:如果父类提供的是具体的方法,另一个接口提供同名且参数相同的方法,则默认(default)方法会被忽略
- 接口冲突:如果父类提供一个默认的方法,另一个接口提供同名且参数相同的方法,则必须覆盖(override)这个方法解决冲突
注意:千万不要把一个Objcet的方法重新定义为默认
接口(interface)小结
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。