接口(interface)概述
接口是类似抽象类的抽象化类型,自己不能实例化
接口就是一种公共的规范标准,只要符合规范标准,大家就可以通用
和Java里的抽象类类似,但是比抽象类更加抽象,接口内容要求比抽象类更苛刻
注意 : 每个类的默认父类是Object,但是可不能将接口和类混淆,Object类不是接口的默认父类
一、接口是什么?
接口:是Java语言中一种引用类型,是方法的集合,如果说类的内部封装了成员变量、构造方法和成员方法,那么接口的内部主要就是封装了抽象方法,静态常量,(在JDK8之后)接口里面又可以定义静态方法,与默认方法.
接口定义 : 接口的定义,它与定义类方法相似,但是使用interface关键字。它也会被编译成 .class文件,但一定要明确它不是类,而是另外一种引用数据类型。
public interface Animal{
//内容
}
二、接口与类的区别
- 接口不能用于实例化对象
- 接口没有构造方法
- 接口中所有的方法必须是抽象方法
- 接口中不能包含成员变量,除了 static 和 final 变量
- 接口不是被继承,而是被实现
- 接口支持多继承
三、接口与抽象类的区别
- 抽象类里面的抽象方法如果子类未实现,那么子类也是抽象类
- 接口里面也有抽象方法,子类实现抽象类,就必须实现父类所有的抽象方法,不然将该类定义成abstract类
- 接口实现的关键字是implements,而抽象是使用extends进行继承
4.在接口中,定义方法时候 public abstract默认存在, 定义成员时 public static final 默认存在
5.抽象类和接口 都不能被实例化,只有它的子类能继承或者实现来实例化
6.接口还可以继承父类,并且可以继承一个或多个,多个之间用逗号隔开
7.继承的多个父接口里面可能抽象方法名称一致,那么子类只需要实现一个
8.静态方法必须使用 接口名称 . 静态方法进行调用
9.默认方法必须使用子类 . 默认方法进行调用
# 四、 实现接口演示
这里定义一个A , B, C接口, 一个实现接口的类Test
这里演示通过类实现多接口
public interface A {
void a();
}
public interface B {
void b();
}
public interface C {
void c();
}
public class Test implements A,B,C{
@Override
public void a() {
}
@Override
public void b() {
}
@Override
public void c() {
}
}
这里演示通过接口继承,类实现单接口,间接实现多接口
public interface A extends B,C{
void a();
}
public interface B {
void b();
}
public interface C {
void c();
}
public class Test implements A{
@Override
public void a() {
}
@Override
public void b() {
}
@Override
public void c() {
}
}