持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第11天,点击查看活动详情
1、写在前面
大家好,我是翼同学。今天笔记的内容是:
- Java接口
2、内容
2.1、什么是接口?
接口是一种技术,可用于描述类具有的功能,而不用给出每个功能的具体实现。在Java中,一个类可以实现一个或多个接口。
简单来说,接口不是类,而是对类的一组需求描述。对于接口的实现类,则必须遵从接口描述的统一格式进行定义。这体现了接口的规范思想。
2.2、接口如何定义?
我们使用关键字interface来定义接口。
注意,接口是隐式抽象的,当声明接口时,可以不用abstract关键字。
接口定义的格式如下:
public interface 接口名 {
// 常量
// ...
// 抽象方法
// ...
}
举个例子:
public interface Demo {
// 静态常量
public static final String name = "Hello World.";
// 抽象方法
public abstract void func();
}
2.3、接口的用法
接口就是用来被实现的,关键字为implements,实现接口的类称为实现类。
一个类通过实现接口,进而继承接口中的抽象方法。注意,接口和抽象类并不一样,抽象类描述了对象的属性和方法,而接口则包含类要实现的方法。
实现类的格式如下:
修饰符 class 类名 implements 接口1, 接口2, ...{
// 具体实现
}
一个类只能继承一个抽象类,但却可以实现多个接口。
另外,在Java中,类的多继承是不合法,但接口允许多继承。这使得我们可以合并规范,整合多个接口为一个接口,便于子类的实现。
2.4、小结
接口的特点如下:
- 接口没有构造方法,也无法被实例化;
- 接口的成员变量只能是常量,默认修饰符
public static final; - 接口的成员方法只能是抽象方法。默认修饰符
public abstract; - 接口中的所有方法默认是公开的,所以在接口中定义方法时可以不使用
public关键字; - 一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类;
- 一个类继承了父类,同时又实现了某个接口,如果此时父类和接口有一个同名方法,则默认使用父类的方法;
Jdk8之前,接口之中只能有抽象方法和常量出现,不允许有其他成分;Jdk8之后,接口中可以使用default关键字修饰的非抽象方法;Jdk9之后,接口允许将方法定义为private,这使得某些复用的代码不会把方法暴露出去。
3、写在最后
好了,今天的笔记就记到这里。