java接口简介
1.1接口简介
接口,在java中是一种引用数据类型,里面主要有常量、抽象方法(jdk及以前)、默认方法和静态方法(jdk8)、和私有方法(jdk9)。接口是一系列方法的声明,是一些方法的特征集合,一个接口只要方法的特征而没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现类的方法具有不同的功能。
1.2接口的格式
-
public interface 接口名称{
-
//常量
-
//抽象方法
-
//静态方法
-
//默认方法
-
//私有方法
-
}
使用interface来声明一个接口。
里面包含常量、抽象方法、静态方法、默认方法、私有方法,最主要的还是里面的抽象方法。
需要一个实现类来实现接口当中的所有抽象方法。
抽象方法
抽象方法定义格式:
-
public interface 接口名称{
-
-
public abstract void 抽象方法名称();
-
-
}
抽象方法使用abstract修饰,public abstract 可以省略,两个一起省略或者省略其中一个都是可以的(前期学习的时候建议不要省略),抽象方法没有方法体,
默认方法
默认方法定义格式:
-
public interface 接口名称{
-
-
public default void 默认方法名称(){
-
//方法体
-
}
-
-
}
默认方法使用default关键字修饰,public可以省略不写,但default不能省略,默认方法主要给实现类(子类)覆盖重写或者调用。
静态方法
-
public interface 接口名称{
-
-
public static void 静态方法名称(){
-
//方法体
-
}
-
-
}
静态方法使用static关键字修饰,public可以省略不写,静态方法只能接口来进行调用,不能通过实现类对象来调用,也不能被实现类所继承或者重写,静态方法只跟接口有关。
私有方法
-
public interface 接口名称{
-
-
private void 私有方法名称(){
-
//方法体
-
}
-
-
private static 私有方法名称(){
-
//方法体
-
}
-
-
}
私有方法分为:普通私有方法、静态私有方法。
私有方法使用private关键字修饰,供默认方法和静态方法使用。
1.3接口的实现
实现的概述
类与接口关系称为实现,即类实现接口,该类可以称为该接口的实现类,实现的动作与继承相仿,但实现类使用implements关键字,
实现类必须:
1.实现接口当中的所有抽象方法【必须】
2.继承或者重写接口当中的默认方法【可选】
实现类的格式:
-
public class 类名 implements 接口名称{
-
-
//方法体
-
-
}
抽象方法的使用
定义测试类:
-
接口:
-
public interface LiveAble{
-
//定义抽象方法
-
public abstract void eat();
-
-
puclic abstract void sleep();
-
-
}
-
-
实现类:
-
public calss Animal implements LiveAble{
-
@Override
-
public void eat(){
-
System.out.println("吃东西");
-
}
-
-
@Override
-
public void sleep(){
-
System.out.println("睡觉");
-
}
-
-
}
-
-
测试类:
-
public class InterfaceDemo{
-
public static void main(String[] args){
-
//创建子类对象
-
Animal a = new Animal();
-
//调用实现后的方法
-
a.eat();
-
a.sleep();
-
}
-
-
}
-
实现类必须实现抽象类当中的所有抽象方法,如果没有实现接口当中的抽象方法,那么实现类就必须是一个抽象类,应为抽象方法所在的类必须是一个抽象类,
默认方法
定义测试类:
继承默认方法 代码如下:
-
接口:
-
public interface LiveAble {
-
public default void fly(){
-
System.out.println("天上飞");
-
}
-
}
-
-
实现类:
-
public class Animal implements LiveAble {
-
// 继承,什么都不用写,直接调用
-
}
-
-
测试类:
-
public class InterfaceDemo {
-
public static void main(String[] args) {
-
// 创建子类对象
-
Animal a = new Animal();
-
// 调用默认方法
-
a.fly();
-
}
-
}
覆盖重写默认方法 代码如下:
-
接口:
-
public interface LiveAble {
-
public default void fly(){
-
System.out.println("天上飞");
-
}
-
}
-
-
实现类:
-
public class Animal implements LiveAble {
-
@Override
-
public void fly() {
-
System.out.println("自由自在的飞");
-
}
-
}
-
-
测试类:
-
public class InterfaceDemo {
-
public static void main(String[] args) {
-
// 创建子类对象
-
Animal a = new Animal();
-
// 调用重写方法 a.fly();
-
}
-
}
-
输出结果: 自由自在的飞
默认方法可以被实现类继承也可以被覆该重写。
静态方法
-
接口:
-
public interface LiveAble {
-
public static void run(){
-
System.out.println("跑起来~~~");
-
}
-
}
-
-
实现类:
-
public class Animal implements LiveAble {
-
// 无法重写静态方法
-
}
-
-
测试类:
-
public class InterfaceDemo {
-
public static void main(String[] args) {
-
// Animal.run();
-
// 【错误】无法继承方法,也无法调用
-
LiveAble.run(); //
-
}
-
}输出结果: 跑起来~~~
私有方法
-
接口:
-
public interface LiveAble {
-
default void func(){
-
func1();
-
func2();
-
}
-
-
private void func1(){
-
System.out.println("跑起来~~~");
-
}
-
-
private void func2(){
-
System.out.println("跑起来~~~");
-
}
-
}
文章来源: blog.csdn.net,作者:陶然同学,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/weixin_45481821/article/details/106589801
- 点赞
- 收藏
- 关注作者
评论(0)