Java接口(interface)
2023-12-25 20:02:14
1. 接口的介绍
- 接口 : 如果一个类中都是抽象方法 , 那么这个类应该是定义规则的类 , 我们应该把此类定义成接口,接口是一种引用数据类型
- 作用 :
- 用于定义规则
- 程序的扩展性
2. 接口的定义和特点
- 定义接口的关键字使用interface
- public interface 接口名{ … }
- 类与接口之间的关系是实现关系 , 用关键字implements进行连接
- public class 类名 implements 接口名 { … }
- 接口不能实例化
- 接口的子类我们叫做实现类
- 要么重写接口中所有的抽象方法
- 要么实现类是一个抽象类
- 注意 : 类与接口的关系是实现关系 , 一个类可以实现多个接口,调用逗号分隔 , 还可以继承一个类的同时 , 实现多个接口
package com.itheima.interface_demo;
public interface Inter {
public abstract void show();
public abstract void method();
}
interface Inter2{
}
public class InterImpl extends Object implements Inter,Inter2{
@Override
public void show() {
}
@Override
public void method() {
}
}
package com.itheima.interface_demo;
/*
1 定义接口的关键字使用interface
public interface 接口名{ ... }
2 类与接口的关系是实现关系 , 使用implements进行连接
public class 类名 implements 接口名{ ... }
3 接口不能实例化(不能创建对象)
4 接口的子类,我们叫做实现类
要么重写接口中所有的抽象方法
要么这个实现类是一个抽象类
注意 : 类与接口的关系是实现关系 , 一个类可以实现多个接口
还可以继承一个类的同时 , 实现多个接口
*/
public class InterfaceDemo1 {
public static void main(String[] args) {
// 接口不能实例化(不能创建对象)
// Inter inter = new Inter();
}
}
3 .接口的成员特点
- 成员变量 : 都是常量 , 默认修饰符 public static final
- 构造方法 : 没有构造方法
- 成员方法 : 只能是抽象方法 , 默认修饰符public abstract
- 关于JDK8和JDK9版本对接口增加了一些方法新特性
public interface Inter {
// 是一个常量 , 默认修饰符 public static final
public static final int num=10;
public abstract void show();
public abstract void method();
}
interface Inter2{
}
public class InterfaceDemo1 {
public static void main(String[] args) {
// 接口不能实例化(不能创建对象)
// Inter inter = new Inter();
System.out.println(Inter.num);
}
}
可以直接访问接口的成员变量
接口的案例
public interface player {
public abstract void play();
public abstract void pause();
public abstract void stop();
}
public class Movie implements player{
@Override
public void play() {
System.out.println("电影开始播放");
}
@Override
public void pause() {
System.out.println("电影开始暂停");
}
@Override
public void stop() {
System.out.println("电影开始停止");
}
}
public class PlayerTest {
public static void main(String[] args) {
Movie movie = new Movie();
movie.play();
movie.pause();
movie.stop();
}
}
运行程序后的结果
D:\jdk17\bin\java.exe "-javaagent:D:\IntelliJ IDEA 2021.3.3\lib\idea_rt.jar=49766:D:\IntelliJ IDEA 2021.3.3\bin" -Dfile.encoding=UTF-8 -classpath E:\Linuxshare\StartJava\out\production\StartJava;E:\Linuxshare\StartJava\lib\jl-1.0.1.jar com.itheima.interface_demo.interface_test.PlayerTest
电影开始播放
电影开始暂停
电影开始停止
4. 接口中成员方法的特点
- DK8版本之前 : 只能是抽象方法
- JDK8版本 :
- 默认方法
- JDK8可以在接口中定义非抽象方法(带有方法体的方法) , 需要使用default进行修饰 , 其实就是默认方法
- 作用 : 解决接口升级的问题
- 格式 : public default 返回值类型 方法名(参数) { … }
- 注意事项 :
- 默认方法不是抽象方法 , 可以继承 , 也可以重写 , 重写需要去掉default关键字
- public 可以省略 , default不能省略
- 如果实现类实现了多个接口 , 有相同的方法声明 , 那么实现类必须重写该方法
- 静态方法
- JDK8可以在接口中定义静态方法 , 也是有方法体的方法
- 作用 : 方便调用此功能
- 格式 : public static 返回值类型 方法名(参数){ … }
- 注意事项
- 静态方法只能通过接口名调用 , 不能通过实现类名字和对象调用
- public可以省略 , static不能省略
- 默认方法
- JDK9版本 :
- 私有方法
- JDK9中新增私有方法
- 作用 : 抽取默认方法中共性内容
- 格式 : private 返回值类型 方法名(参数){ … }
- 注意 : 要想抽取静态方法中的共性内容 , 需要对私有方法加上关键字static
- 私有方法
文章来源:https://blog.csdn.net/lisus2007/article/details/135206069
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!