接口

接口
不是类,而是对类的一组需求描述,这些类要遵从接口描述的统一格式进行定义。
比如:
Arrays类重点 sort方法对对象数组进行排序,前提是所属的类必须实现Comparable接口

public interface Comparable
{
     int compareTo(Object other) ;
}
在调用x.compareTo(y)的时候,这个方法必须确实比较两个对象的内容,并返回比较多结果,当x小于y时,返回负数,当x大于y时,返回一个正数,当两者相等时,返回0.
也就是说任何实现Comparable接口的类都需要包含compareTo方法,并且这个方法中的参数必须是一个Object对象,返回一个整形数值

接口中的方法自动属于public
接口中决不能含有实例域,也不能在接口中实现方法,提供实例域和方法的任务应该由实现接口的那个类去完成,可以将接口看作是没有 实例域的抽象类,但两者之间还是有区别的。
在实现接口时,,必须把方法声明为public(否则编译器将认为这个方法的访问属性是包可见性,即类的默认访问属性)

上面的实现可以转换成:
class Employee implements Comparable<Employee>
{
   public int compareTo(Employee other)
   {
      return Double.compare(salary, other.salary) ;
      }
      .....
 }

从这个例子汇总可以看出一个类要想使用排序功能,必须要实现compareTo方法

int comapreTo(T  other)
用这个对象与other进行比较,如果对象小雨other则返回负值,相等返回0,否则返回正值
static void sort(Object[] a)
使用mergesort算法对数组中的元素进行排序,要求数组中的元素必须属于实现了Comparable接口的类,并元素之间是可以比较多
static int compare(int x, int y)
如果x<y返回一个负整数,如果x=y返回0,否则返回一个正整数

接口不是类,不能用new运算符实例化一个接口,但是可以声明接口的变量
与接口中的方法自动设置成public一样,接口中的域自动设为public static final
有待补充

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值