interface接口_接口 interface

690b2a9d795a05902dfe38672e953825.png

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


Arrays类中的sort方法承诺可以对对象数组进行排序,但要求满足下列条件:对象所属的类必须实现了Comparable接口。

public interface Comparable
{int compareTo(Object other);
}

Java SE5.0,Comparable接口已经改为泛型类型

public interface Comparable<T>
{int TEST_VAR = 1;int compareTo(T other);
}

1. 任何实现Comparable接口的类都需要包含compareTo方法,并且这个方法的参数必须是一个Object对象,返回一个整型数值。

2. 接口中所有方法自动地属于public。因此,在接口中声明方法时,不必提供关键字public。

但是在实现接口时,必须把方法声明为public,否则编译器将认为这个方法的访问属性是包 可见性。

3. 接口中可以定义常量。与接口中的方法都被自动地被设置为public一样,接口中的域将被自动设为public static final。

4. 接口中不能含有实例域。

5. 接口中可以建档提供方法,但是这些方法中不能引用实例域——接口中没有实例域。

类实现某个接口:

public class Employee implements Comparable<Employee>
{private int id;private String name;/*** compareTo返回一个整型数值。对象不相等,返回一个正值或者负值。在对两个整数域进行比较时,这点非常有用。* 例如:根据id对Employee进行排序,可以返回id-other.id* 但是注意:整数范围不能够过大,以免造成减法计算溢出。* 如果id为非负整数,或者他们的绝对值不超过(Integer.MAX_VALUE - 1) / 2,就不会出现问题。否则,调用Integer.compare方法。  */public int compareTo(Employee other){return Integer.compare(id, other.id);// return id - other.id;// double类型可以用Double.compare()}
}

和.equals方法一样,在子类Manager继承父类Employee的时候,Comparable中compareTo方法也会出现问题,子类中compareTo方法修改方式和.equals方法类似。有两种不同的情况:

  1. 如果子类之间的比较含义不一样,那就属于不同的子类对象的非法比较。每个compareTo方法都应该在开始时进行下列检测:
if (getClasss() != other.getClass()) throw new ClassCastException();

2. 如果存在这样一种通用算法,它能够对两个不同的子类对象进行比较,则应该在超类中提供一个compareTo方法,并将这个方法声明为final。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/419824.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码视图与StoryBoard.Xib文件视图的跳转

在storyboard中拖拽的控件,当我们使用纯代码进行编写的时候,进行跳转的时候用我们平时用的[self.navigationController popToViewController:Vc animated:YES], 你会发现跳转的后出现的页面只有你用用纯代码写的,而storyboard中的没有,这时候我们使用这个方法还是比较简单不能实…

influxdb mysql对比_InfluxDB读写性能测试

这里将告诉您InfluxDB读写性能测试,教程操作步骤:今天进行了InfluxDB和MySQL的对比测试&#xff0c;这里记录下结果&#xff0c;也方便我以后查阅。操作系统&#xff1a; CentOS6.5_x64InfluxDB版本 &#xff1a; v1.1.0MySQL版本&#xff1a;v5.1.73CPU &#xff1a; Intel(R)…

Nginx windows安装部署

一、Nginx简介 Nginx (engine x) 是一个高性能的HTTP和反向代理服务器&#xff0c;也是一个IMAP/POP3/SMTP服务器。Nginx是由伊戈尔赛索耶夫为俄罗斯访问量第二的Rambler.ru 站点&#xff08;俄文&#xff1a;Рамблер&#xff09;开发的. 它也是一种轻量级的Web服务器…

前端学习(1514):vue-router使用步骤

<!-- 1引入插件的js --> <!-- 2设置链接 --> <!-- 3设立容器部分 --> <!-- 4提供要渲染的组件 --> <!-- 5配置路由 --> <!-- 6挂载路由 --> <!DOCTYPE html> <html lang"en"><head><meta charset"UT…

1024电商项目的邮箱验证码与图形验证码功能模块

项目基于springcloudalibaba&#xff0c;模块功能大致概括就是登录页面的时候先完成图形验证码的校验&#xff0c;输入的数字和字母与图片上的相对应之后&#xff0c;会向对应的邮箱或手机号发送邮箱/短信验证码二次验证。这里展示的是邮箱验证码。 用到的技术点有&#xff1a…

Android自己的自动化测试Monkeyrunner和用法示例

眼下android SDK在配有现成的测试工具monkey 和 monkeyrunner两。也许我们不看一样的兄弟名字。但事实是完全跑了两个完全不同的工具。在测试的不同区域的应用程序。总体&#xff0c;monkey主要用于压力和可靠性测试&#xff0c;拟键盘事件流。而且能够自定义发送的次数&#x…

内存大对象dump linux_在 Linux 上创建并调试转储文件 | Linux 中国

了解如何处理转储文件将帮你找到应用中难以重现的 bug。• 来源&#xff1a;linux.cn • 作者&#xff1a;Stephan Avenwedde • 译者&#xff1a;Xingyu.Wang •(本文字数&#xff1a;5501&#xff0c;阅读时长大约&#xff1a;6 分钟)崩溃转储、内存转储、核心转储、系统转储…

爬虫用mysql存储还是mongodb_【面试题】Mongodb和MySQL存储爬虫数据的特点是什么?...

(1)问题分析面试官主要考核Mongodb和MySQL数据库的特点&#xff0c;以及关系型与非关系型数据库。(2)核心问题讲解MySQL属于关系型数据库&#xff0c;它具有以下特点&#xff1a;在不同的引擎上有不同的存储方式。查询语句是使用传统的sql语句&#xff0c;拥有较为成熟的体系&a…

mysql originator_MySQL数据库事件调度(Event)

4.创建事件调度每5秒在表中插入数据MySQL> create event if not exists event_t1 on schedule every 5 second do insert into t values(1,1,sysdate());Query OK, 0 rows affected (0.01 sec)mysql> select * from t; --查看事件执行数据-------------------…

前端学习(1520):vue-router嵌套路由

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title></head> <!-- 1引入…

python与sql连接不上_Python连接不上SQL Server的两种根治思路

连接不上数据库&#xff0c;首先可以排除是代码的问题&#xff0c;连接方式都是千篇一律的。大多数问题都是本机的两个原因造成的&#xff0c;1.服务没有开启,2.没有启动SQL配置的TCP/IP下面给出统一解决方案&#xff1a;首先从开始菜单找到SQL数据库的配置工具&#xff0c;比如…

python多进程和多线程一起使用_Python:多进程和多线程

在现实社会&#xff0c;我们经常需要一种场景&#xff0c;就是同时有多个事情需要执行&#xff0c;如在浏览网页的同时需要听音乐。比如说在跳舞的时候要唱歌。同样的&#xff0c;在程序中我们也可能需要这种场景。如下面我们以同时听音乐和浏览网页为例。def network():while …

python字典怎么换行_Python字典如何换行

原标题&#xff1a;Python字典如何换行Python字典换行的方法如下&#xff1a;1、换行时保证行尾是逗号即可a {"key0": "val0","key1": "val1","key2": "val2"}2、在长度不影响阅读的情况下这种写法也是允许的&am…

回复《我要阻止做java开发的男朋友去创业型公司工作吗?》园友问题

真的非常开心能收到这么多园友的关心&#xff0c;看到这么多的回复顿感身边处处充满爱。也非常感谢大家踊跃的帮我出谋划策&#xff0c;小女子在此有礼了&#xff01; 我先来回答一下性别的问题&#xff08;前面已经暴露了……&#xff09;&#xff0c;我是前端程序媛。大三时和…

java date转sql date_java.util.Date和java.sql.Date转换(转)

Date 的类型转换&#xff1a;首先记住java.util.Date 为 java.sql.Date的父类1.将java.util.Date 转换为 java.sql.Datejava.lang.ClassCastException: java.util.Date cannot be cast to java.sql.DateDate dnew Date(); //java.util.Datenew java.sql.Date(d.getTime()) //…

Kaggle Bike Sharing Demand Prediction – How I got in top 5 percentile of participants?

Kaggle Bike Sharing Demand Prediction – How I got in top 5 percentile of participants? Introduction There are three types of people who take part in a Kaggle Competition: Type 1: Who are experts in machine learning and their motivation is to compete with…