Java interface 接口的使用 implements 实现----
1 package com.bytezreo.interfacetest; 2 3 /** 4 * 5 * @Description interface 接口的使用 implements 实现---- 6 * @author Bytezero·zhenglei! Email:420498246@qq.com 7 * @version 8 * @date 下午4:14:17 9 * @ 1.接口的使用interface来定义 10 * 2.在Java 中,接口和类时并列的两个结构 11 * 3.如何定义接口:定义接口中的成员 12 * 13 * 3.1 JDK7以及以前:只能定义全局常量和抽象方法 14 * >全局常量:public static final的,但是书写时,可以省略 15 * >抽象方法:public abstract 16 * 17 * 3.2 JDK8:除了定义全局常量和抽象方法之外,还可以定义静态方法和默认方法 18 * 19 * 4.接口中不能定义构造器! 意味着 接口不可以实例化 20 * 21 * 5.java 开发中,接口通过让类去实现(implements)的方式来使用 22 * 如果实现类 覆盖了接口中的所有抽象方法,则此实现类就可以实例化 23 * 如果实现类 没有覆盖接口中所有的抽象方法,则此实现类仍为抽像类 24 * 25 * 26 * 6.Java 类可以实现多个接口 ---->弥补了 Java 单继承性的局限性 27 * 格式: class AA extends BB implements CC,DD,EE 28 * 29 * 7.接口与接口之间可以继承, 可以多继承 30 * 31 * ******************************************** 32 * 33 * 8.接口的具体使用,体现多态性 34 * 35 * 9.接口,实际上可以看做时一种规范 36 * 37 * 抽象类与接口有哪些异同? 38 * 39 * 40 */ 41 public class InterfaceTest { 42 public static void main(String[] args) { 43 44 System.out.println(Flyable.MAX_SPEED); 45 System.out.println(Flyable.MIN_SPEED); 46 47 //Flyable.MIN_SPEED = 2; //不能赋值 48 49 Plane plane = new Plane(); 50 plane.fly(); 51 } 52 } 53 54 //接口 55 interface Flyable{ 56 57 //全局常量 58 public static final int MAX_SPEED = 7900; //第一宇宙速度 59 // public static final int MIN_SPEED = 1; 60 61 int MIN_SPEED = 1; //省略了 public static final 62 63 //抽象方法 64 public abstract void fly(); 65 66 // public abstract void stop(); 67 68 //省略了 public abstract 69 void stop(); 70 71 72 73 } 74 75 //接口 76 interface Attackable{ 77 78 void attack(); 79 } 80 81 82 //实现类 83 class Plane implements Flyable{ 84 85 @Override 86 public void fly() { 87 System.out.println("飞机通过引擎飞"); 88 89 } 90 91 @Override 92 public void stop() { 93 System.out.println("驾驶员减速停止"); 94 95 } 96 97 } 98 99 abstract class Kite implements Flyable{ 100 101 //kite 不能实例化了 102 @Override 103 public void fly() { 104 105 106 } 107 108 109 110 } 111 112 113 class Bullet extends Object implements Flyable,Attackable,CC{ 114 115 @Override 116 public void attack() { 117 118 119 } 120 121 @Override 122 public void fly() { 123 124 125 } 126 127 @Override 128 public void stop() { 129 130 131 } 132 133 @Override 134 public void method1() { 135 // TODO Auto-generated method stub 136 137 } 138 139 @Override 140 public void method2() { 141 // TODO Auto-generated method stub 142 143 } 144 145 146 } 147 148 //************************************************* 149 150 interface AA{ 151 152 void method1(); 153 } 154 155 interface BB{ 156 void method2(); 157 } 158 159 160 interface CC extends AA,BB{ 161 162 }
本文来自博客园,作者:Bytezero!,转载请注明原文链接:https://www.cnblogs.com/Bytezero/p/15369352.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)