接口
接口的概念
接口技术用于描述类具有什么功能,但并不给出具体实现,类要遵从接口描述的统一规则进行定义,所以,接口是对
外提供的一组规则、标准。
接口的定义
定义接口使用关键字interface
interface 接口名 {}
类和接口是实现关系,用implements表示
class 类名 implements 接口名
接口创建对象的特点
1. 接口不能实例化,通过多态的方式实例化子类对象
2. 接口的子类(实现类)
如果是普通类,则必须重写接口中的所有抽象方法
如果是抽象类,则不用重写接口中的抽象方法
接口继承关系的特点
1. 接口与接口之间的关系
继承关系,可以多继承,格式:接口 extends 接口1,接口2,接口3…
2. 继承和实现的区别
继承体现的是“is a”的关系,父类中定义共性内容
实现体现的是“like a”的关系,接口中定义扩展功能
3.接口和类之间的关系:
类与类之间:
继承关系,只能单继承,不能多继承,但是可以多层继承
类与接口之间
实现关系,可以单实现也可以多实现
接口与接口之间
继承关系,可以单继承,也可以多继承
总结:
对于一个类来讲,他的父类(继承的关系)中定义的都是:共性内容。
对于一个类来讲,他的父接口(实现关系)中定义的都是:扩展内容
接口成员变量的特点
接口没有成员变量,只有公有的、静态的常量:
public static final 常量名 = 常量值;
接口成员方法的特点
//JDK7及以前,公有的、抽象方法:
public abstract 返回值类型 方法名();
///JDK8以后,可以有默认方法和静态方法:
public default 返回值类型 方法名() {}
static 返回值类型 方法名() {}
//JDK9以后,可以有私有方法:
private 返回值类型 方法名() {}
接口构造方法的特点
接口不能够实例化,也没有需要初始化的成员,所以接口没有构造方法
API
Object类:
概述:
类层次结构最顶层的基类,所有类都直接或间接的继承自Object类.
构造方法:
public Object()
成员方法:
int hashCode(): 返回对象的哈希码值, 不同对象的哈希码值一般不同.
Class<?> getClass():返回该调用者的字节码文件对象, 一个类只有一个字节码文件对象.
String toString(): 返回该对象的字符串表示形式.
返回该对象的字符串表示形式, 默认打印的是地址值, 但是不同对象的地址值肯定不同.
地址值的组成: 全类名 + @ + 该对象的哈希码的无符号十六进制形式
boolean equals(): 比较两个对象是否相等.
注意:
java.lang包下的类可以直接使用, 不需要导包.
注意:
实际开发中, 我们把两个对象的各个属性值都相同的情况下, 才会认为这两个对象是同一个对象.