|NO.Z.00068|——————————|BigDataEnd|——|Java&多态特殊类.V09|——|Java.v09|类和接口|实际意义|
一、类和接口之间的关系
### --- 案例题目
~~~ ——> 编程实现Runner接口,提供一个描述奔跑行为的抽象方法。
~~~ ——> 编程实现Hunter接口继承Runner接口,并提供一个描述捕猎行为的抽象方法。
~~~ ——> 编程实现Man类实现Hunter接口并重写抽象方法,在main方法中使用多态方式测试。
二、类和接口之间的关系

三、编程代码
package com.yanqi.task09;
public interface Runner {
// 自定义抽象方法描述奔跑的行为
public abstract void run();
}
四、编程代码
package com.yanqi.task09;
// 接口只能继承接口,不能继承类
public interface Hunter extends Runner {
// 自定义成员方法描述捕猎的行为
public abstract void hunt();
// 将两个默认方法中重复的代码可以提取出来打包成一个方法在下面的两个方法中分别调用即可
private void show() {
System.out.println("在以后的开发中尽量减少重复的代码,也就是减少代码的冗余!");
}
// 增加一个抽象方法
//public abstract void show1();
// 增加非抽象方法
public default void show1() {
show();
//System.out.println("在以后的开发中尽量减少重复的代码,也就是减少代码的冗余!");
System.out.println("show1方法中:这里仅仅是接口中的默认功能,实现类可以自由选择是否重写!");
}
// 增加非抽象方法
public default void show2() {
show();
//System.out.println("在以后的开发中尽量减少重复的代码,也就是减少代码的冗余!");
System.out.println("show2方法中:这里仅仅是接口中的默认功能,实现类可以自由选择是否重写!");
}
// 增加静态方法 隶属于类层级,也就是接口层级
public static void test() {
System.out.println("这里是静态方法,可以直接通过接口名.的方式调用,省略对象的创建");
}
}
五、编译代码
package com.yanqi.task09;
public class Man implements Hunter {
@Override
public void hunt() {
System.out.println("正在追赶一直小白兔...");
}
@Override
public void run() {
System.out.println("正在被一直大熊追赶,玩命奔跑中...");
}
@Override
public void show1() {
System.out.println("为了给你几分薄面,我决定重写一下!");
}
public static void main(String[] args) {
// 1.声明接口类型的引用指向实现类的对象,形成了多态
Runner runner = new Man();
runner.run();
Hunter hunter = new Man();
hunter.hunt();
System.out.println("-----------------------------------------");
// 2.可以使用接口名称.的方式调用接口中的静态方法
Hunter.test();
}
}
六、编译打印
D:\JAVA\jdk-11.0.2\bin\java.exe "-javaagent:D:\IntelliJIDEA\IntelliJ IDEA 2019.3.3\lib\idea_rt.jar=53527:D:\IntelliJIDEA\IntelliJ IDEA 2019.3.3\bin" -Dfile.encoding=UTF-8 -classpath E:\NO.Z.10000——javaproject\NO.H.00001.javase\javase\out\production\javase com.yanqi.task09.Man
正在被一直大熊追赶,玩命奔跑中...
正在追赶一直小白兔...
-----------------------------------------
这里是静态方法,可以直接通过接口名.的方式调用,省略对象的创建
Process finished with exit code 0
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
分类:
bdv002-Java面向对象
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通