接口(interface)小结
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了接口(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)小结的主要内容,如果未能解决你的问题,请参考以下文章
0507 构造代码块和static案例,接口interface