news 2026/5/15 13:22:05

Interface Abstract Class

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Interface Abstract Class
Interface & Abstract Class 接口与抽象类

package further.zwf.interface2; /** * 1. 接口:定义“能飞”的规范(JDK 8+ 带默认方法) * * @author ZengWenFeng * @date 2023.09.17 * @mobile 13805029595 * @email 117791303@QQ.COM */ interface Flyable { //llegal modifier for the interface field Flyable.id; only public, static & final are permitted //private String id; public static final int a = 100; // 抽象方法:必须由实现类实现 void fly(); // JDK 8 新增:默认方法(有实现,实现类可直接用或重写) default void takeOff() { System.out.println("准备起飞..."); } // JDK 8 新增:静态方法(属于接口本身) static void showInfo() { System.out.println("这是一个定义飞行行为的接口"); } }
package further.zwf.interface2; /** * 2. 抽象类:定义“交通工具”的通用模板 * * @author ZengWenFeng * @date 2023.09.17 * @mobile 13805029595 * @email 117791303@QQ.COM */ public abstract class Vehicle { // 普通成员变量:抽象类可以有状态 protected String name; // private String id; public String code; String sex; // 构造方法:供子类调用 public Vehicle(String name) { this.name = name; } // 抽象方法:子类必须实现 public abstract void run(); // 普通方法:通用逻辑,子类直接复用 public void start() { System.out.println(name + " 启动了!"); } public void stop() { System.out.println(name + " 停下了!"); } }
package further.zwf.interface2; /** * 3. 飞机类:继承抽象类 + 实现接口(多继承) * * @author ZengWenFeng * @date 2023.09.17 * @mobile 13805029595 * @email 117791303@QQ.COM */ public class Airplane extends Vehicle implements Flyable { public Airplane(String name) { super(name); } // 实现抽象类的抽象方法 public void run() { System.out.println(name + " 在跑道上滑行"); } // 实现接口的抽象方法 public void fly() { System.out.println(name + " 在高空飞行"); } // 可以重写接口的默认方法,也可以不写直接用 public void takeOff() { System.out.println(name + " 加速、拉升,起飞!"); } }
package further.zwf.interface2; /** * 4. 鸟类:实现接口(不继承抽象类,和交通工具没关系,但也能飞) * * @author ZengWenFeng * @date 2023.09.17 * @mobile 13805029595 * @email 117791303@QQ.COM */ public class Bird implements Flyable { private String name; public Bird(String name) { this.name = name; } public void fly() { System.out.println(name + " 扇着翅膀在天空飞"); } }

package further.zwf.interface2; /** * 5.测试类 * 其实我是个笨蛋,特别是看书 * 书有时候太抽象,概念太多,不太容易理解 * 所以多动手写例子 * * @author ZengWenFeng * @date 2023.09.17 * @mobile 13805029595 * @email 117791303@QQ.COM */ public class TestDemo { public static void main(String[] args) { // 调用接口的静态方法 Flyable.showInfo(); // 飞机:既继承了交通工具的通用方法,又实现了飞行接口 Airplane plane = new Airplane("波音747"); plane.start(); // 来自抽象类的通用方法 plane.takeOff(); // 重写后的接口默认方法 plane.fly(); // 接口的抽象方法实现 plane.run(); // 抽象类的抽象方法实现 plane.stop(); // 来自抽象类的通用方法 System.out.println("----------------"); // 鸟:只实现飞行接口,和交通工具无关 Bird bird = new Bird("麻雀"); bird.takeOff(); // 直接使用接口的默认方法 bird.fly(); } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/15 12:59:13

RISC-V PLIC中断机制详解:从声明/完成握手机制到实战框架构建

1. 项目概述:从零理解RISC-V U54内核的PLIC中断处理如果你正在开发基于SiFive U54内核的RISC-V系统,或者对RISC-V平台中断控制器(PLIC)的底层运作感到好奇,那么这篇文章就是为你准备的。中断处理是嵌入式系统开发中最核…

作者头像 李华
网站建设 2026/5/15 12:58:14

三步解锁网盘直链下载:LinkSwift 终极指南

三步解锁网盘直链下载:LinkSwift 终极指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘 / 迅雷…

作者头像 李华
网站建设 2026/5/15 12:58:06

蓝牙无线扫描方案全解析:从协议选型到实战部署

1. 项目概述:从“线”的束缚到“无线”的自由做仓储、零售或者物流的朋友,对条码扫描枪肯定不陌生。那根连接扫描枪和电脑的“尾巴”——数据线,平时看着不起眼,但在实际作业里,它可能是效率最大的绊脚石。理货时线缆被…

作者头像 李华