接口:用来描述类具有什么功能,而并不给出每个功能的具体实现。

一个类可以实现一个或多个接口。

克隆(深拷贝):创建一个新对象,且新的对象的状态与原始对象的状态相同。当对克隆的新对象进行修改时,不会影响原始对象的状态。

内部类:内部类定义在另外一个类的内部,其中的方法可以访问包含它们的外部类的域。

接口:接口不是类,不能被实例化,而是对类的一组需求的描述,这些类要遵从接口描述的统一格式进行定义,也就是说要实现接口中的方法。

接口中的所有方法自动地属于public。接口中不能含有实例域,也不能在接口中实现方法。可以将接口看作是没有实例域的抽象类。

比如要对对象进行排序必须得实现Comparable接口:

public interface Comparable<T>
{
int compareTo(T other);
}
import java.util.Arrays;

/**
* Created by N3verL4nd on 2016/11/25.
*/ class test implements Comparable<test>{
private int score; public test(int score){
this.score = score;
} public int getScore() {
return score;
} @Override
public int compareTo(test o) {
return (score - o.score);
}
} public class HelloWorld {
public static void main(String[] args) {
test[] arr = new test[5];
arr[0] = new test(100);
arr[1] = new test(90);
arr[2] = new test(95);
arr[3] = new test(70);
arr[4] = new test(80); Arrays.sort(arr);
for (test t : arr){
System.out.println(t.getScore());
}
}
}

接口不是类,不能使用new运算符实例化一个接口,但是却可以声明接口的变量,接口变量必须引用实现了接口的类对象,用以实现多态。

接口中不能包含实例域与静态方法,但却可以包含常量。接口中的域将自动设为public static final。

java核心技术----接口的更多相关文章

  1. Java核心技术-接口、lambda表达式与内部类

    本章将主要介绍: 接口技术:主要用来描述类具有什么功能,而并不给出每个功能的具体实现.一个类可以实现一个或多个接口. lambda表达式:这是一种表示可以在将来的某个时间点执行的代码块的简洁方法. 内 ...

  2. Java核心技术--接口与内部类

    接口implement 继承接口,即履行"义务". 接口中所有的方法自动属于public,在接口声明中,不必提供关键字public 接口中决不能含有实例域,也不能在接口中实现方法 ...

  3. Java核心技术点之接口

    1. 为什么使用接口 Java中的接口是一组对需求的描述.接口通过声明接口方法来对外宣布:“要想具有XX功能,就得按我说的做(即实现接口方法).” 而接口的实现类通过实现相应接口的方法来宣布:“我已经 ...

  4. Java核心技术点之泛型

    1. Why ——引入泛型机制的原因 假如我们想要实现一个String数组,并且要求它可以动态改变大小,这时我们都会想到用ArrayList来聚合String对象.然而,过了一阵,我们想要实现一个大小 ...

  5. Java核心技术点之集合框架

    1. 概述     Java集合框架由Java类库的一系列接口.抽象类以及具体实现类组成.我们这里所说的集合就是把一组对象组织到一起,然后再根据不同的需求操纵这些数据.集合类型就是容纳这些对象的一个容 ...

  6. Java核心技术点之内部类

    1. 为什么要使用内部类     内部类就是定义在一个类内部的类,那么为什么要使用内部类呢?主要原因有以下几点:第一,内部类中定义的方法能访问到它所在外部类的私有属性及方法:第二,外部类无法实现对同一 ...

  7. Java核心技术点之动态代理

    本篇博文会从代理的概念出发,介绍Java中动态代理技术的使用,并进一步探索它的实现原理.由于个人水平有限,叙述中难免出现不清晰或是不准确的地方,希望大家可以指正,谢谢大家:) 一.概述 1. 什么是代 ...

  8. java核心技术学习笔记之一程序设计概述

    Java 核心技术之一程序设计概述 一.   Java语言的特点 简单行 :取经于C++,排除了C++不常用的指针.结构等,增加垃圾回收. 面向对象:与C++不同是单继承,但是可以继承多接口.完全面向 ...

  9. java核心技术之流与文件

    InputStream和OutputStream构成了输入/输出类层次结构的基础.用于按字节进行读写.而与之处在同一等级的Reader/Writer同样作为抽象类定义了用于对字符进行读取的类层次结构, ...

随机推荐

  1. MicroPython TPYBoard v702实现HTTP应用功能

    [Micropython]TPYBoard v702 HTTP应用功能 转载请注明文章来源,更多教程可自助参考docs.tpyboard.com,QQ技术交流群:157816561,公众号:Micro ...

  2. 浅谈 OpenGL 中相关阻塞问题

    昨天我遇到一个问题,问题如下: 我使用了延迟渲染,我的渲染流程是:Pass1 --> CUDA并行计算 -->Pass2 CUDA并行计算中需要使用Pass1渲染生成的两张纹理,然而我在G ...

  3. gcc 命令详解

    1. gcc -E source_file.c-E,只执行到预编译.直接输出预编译结果. 2. gcc -S source_file.c -S,只执行到源代码到汇编代码的转换,输出汇编代码. 3. g ...

  4. creator 2.0版本对于preloadScene函数获取加载进度

    有时候,当我们场景上挂载的资源过多时,我们使用cc.director.loadScene切换场景时会等一段时间才会切换过去,这对游戏的体验是相当不好的.所以我们可以使用cc.director.prel ...

  5. 探究Dubbo的拓展机制: 下

    承接上篇, 本篇博文的主题就是认认真真捋一捋, 看一下 Dubbo是如何实现他的IOC / AOP / 以及Dubbo SPI这个拓展点的 总览: 本篇的话总体上分成两部分进行展开 第一点就是 Dub ...

  6. Yolo V3理解bbox和label的关系

    假如一个bbox坐标为:[35 220 62 293 3] 第一步:将bbox转换为中心坐标和宽高形式(3种缩放比例进行缩放) 那么onehot:[0 0 0 1 0 0 0 0 0 0 ...... ...

  7. dp-最大连续子序列的和

    https://www.felix021.com/blog/read.php?1587 什么是最大连续子序列和呢 ? 最大连续子序列和是所有子序列中元素和最大的一个 . 问题 : 给定一个序列 { - ...

  8. Tesseract-OCR-v5.0中文识别,训练自定义字库,提高图片的识别效果

    1,下载安装Tesseract-OCR 安装,链接地址https://digi.bib.uni-mannheim.de/tesseract/ ​ 2,安装成功 tesseract -v 注意:安装后, ...

  9. 实用代码|Linux定时检查应用状态

    有时候,我们挂在服务器上的应用会因为一些特殊情况挂掉,致使项目经理又对我们说:又挂了!赶紧去看看!于是又了以下脚本,使用shell编写,用于定时检查应用情况,挂掉则重启.这里以tomcat为例. 根据 ...

  10. python+win32--com实现excel自动化

    import win32com  APP_TYPE = 'Excel.Application'  xlBlack,xlRed,xlGray,xlBlue = 1,3,15,41 xlBreakFull ...