From 7fa0295503ef01195cba0483aba4a505285b8016 Mon Sep 17 00:00:00 2001 From: xuxin <840198532@qq.com> Date: Fri, 23 Jan 2026 14:04:44 +0800 Subject: [PATCH] =?UTF-8?q?day09-=E6=8E=A5=E5=8F=A3=E7=9A=84=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E6=96=B9=E6=B3=95=E7=9A=84=E5=AE=9A=E4=B9=89=E5=92=8C?= =?UTF-8?q?=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Demo01.java | 2 +- .../MyInterface.java | 2 +- .../MyInterfaceImpl.java | 2 +- .../inmind/interface_default02/Demo02.java | 24 +++++++++++++++++++ .../interface_default02/MyInterface.java | 9 +++++++ .../interface_default02/MyInterfaceImpl1.java | 8 +++++++ .../interface_default02/MyInterfaceImpl2.java | 15 ++++++++++++ 7 files changed, 59 insertions(+), 3 deletions(-) rename day10/src/com/inmind/{interface01 => interface_abstract01}/Demo01.java (95%) rename day10/src/com/inmind/{interface01 => interface_abstract01}/MyInterface.java (90%) rename day10/src/com/inmind/{interface01 => interface_abstract01}/MyInterfaceImpl.java (90%) create mode 100644 day10/src/com/inmind/interface_default02/Demo02.java create mode 100644 day10/src/com/inmind/interface_default02/MyInterface.java create mode 100644 day10/src/com/inmind/interface_default02/MyInterfaceImpl1.java create mode 100644 day10/src/com/inmind/interface_default02/MyInterfaceImpl2.java diff --git a/day10/src/com/inmind/interface01/Demo01.java b/day10/src/com/inmind/interface_abstract01/Demo01.java similarity index 95% rename from day10/src/com/inmind/interface01/Demo01.java rename to day10/src/com/inmind/interface_abstract01/Demo01.java index 6f8acfd..776d0ae 100644 --- a/day10/src/com/inmind/interface01/Demo01.java +++ b/day10/src/com/inmind/interface_abstract01/Demo01.java @@ -1,4 +1,4 @@ -package com.inmind.interface01; +package com.inmind.interface_abstract01; /* 接口就是生活中的规范,规则 定义格式 diff --git a/day10/src/com/inmind/interface01/MyInterface.java b/day10/src/com/inmind/interface_abstract01/MyInterface.java similarity index 90% rename from day10/src/com/inmind/interface01/MyInterface.java rename to day10/src/com/inmind/interface_abstract01/MyInterface.java index 38bd010..fccf1f0 100644 --- a/day10/src/com/inmind/interface01/MyInterface.java +++ b/day10/src/com/inmind/interface_abstract01/MyInterface.java @@ -1,4 +1,4 @@ -package com.inmind.interface01; +package com.inmind.interface_abstract01; /* 接口中抽象方法定义: public abstract 返回值类型 抽象方法名(); diff --git a/day10/src/com/inmind/interface01/MyInterfaceImpl.java b/day10/src/com/inmind/interface_abstract01/MyInterfaceImpl.java similarity index 90% rename from day10/src/com/inmind/interface01/MyInterfaceImpl.java rename to day10/src/com/inmind/interface_abstract01/MyInterfaceImpl.java index b9191c9..152f6a2 100644 --- a/day10/src/com/inmind/interface01/MyInterfaceImpl.java +++ b/day10/src/com/inmind/interface_abstract01/MyInterfaceImpl.java @@ -1,4 +1,4 @@ -package com.inmind.interface01; +package com.inmind.interface_abstract01; //实现类 public class MyInterfaceImpl implements MyInterface { @Override diff --git a/day10/src/com/inmind/interface_default02/Demo02.java b/day10/src/com/inmind/interface_default02/Demo02.java new file mode 100644 index 0000000..e2878ef --- /dev/null +++ b/day10/src/com/inmind/interface_default02/Demo02.java @@ -0,0 +1,24 @@ +package com.inmind.interface_default02; +/* +接口是可以进行接口升级,添加功能,之前添加功能方法只能添加抽象方法,导致所有的实现类都必须要修改,这样非常麻烦 +为了解决该问题,在jdk8中添加了默认方法来解决。 + +默认方法的定义方法: +public default void method1(){ + +}; +接口中默认方法的作用:可以让接口进行功能升级,不会影响每个实现类,每个实现类可以选择性地继承或者重写指定的功能 + + */ +public class Demo02 { + public static void main(String[] args) { + //创建接口的2个实现类对象 + MyInterfaceImpl1 myInterfaceImpl1 = new MyInterfaceImpl1(); + myInterfaceImpl1.method(); + myInterfaceImpl1.method1();//直接继承父接口提供 默认方法 + MyInterfaceImpl2 myInterfaceImpl2 = new MyInterfaceImpl2(); + myInterfaceImpl2.method(); + myInterfaceImpl2.method1();//直接重写父接口提供 默认方法 + + } +} diff --git a/day10/src/com/inmind/interface_default02/MyInterface.java b/day10/src/com/inmind/interface_default02/MyInterface.java new file mode 100644 index 0000000..0475873 --- /dev/null +++ b/day10/src/com/inmind/interface_default02/MyInterface.java @@ -0,0 +1,9 @@ +package com.inmind.interface_default02; + +public interface MyInterface { + public abstract void method(); + //添加新的功能方法,不想影响已经定义好的实现类 + public default void method1(){ + System.out.println("接口默认提供的method1方法"); + }; +} diff --git a/day10/src/com/inmind/interface_default02/MyInterfaceImpl1.java b/day10/src/com/inmind/interface_default02/MyInterfaceImpl1.java new file mode 100644 index 0000000..3703c99 --- /dev/null +++ b/day10/src/com/inmind/interface_default02/MyInterfaceImpl1.java @@ -0,0 +1,8 @@ +package com.inmind.interface_default02; + +public class MyInterfaceImpl1 implements MyInterface{ + @Override + public void method() { + System.out.println("实现类MyInterfaceImpl1的method方法"); + } +} diff --git a/day10/src/com/inmind/interface_default02/MyInterfaceImpl2.java b/day10/src/com/inmind/interface_default02/MyInterfaceImpl2.java new file mode 100644 index 0000000..ecef475 --- /dev/null +++ b/day10/src/com/inmind/interface_default02/MyInterfaceImpl2.java @@ -0,0 +1,15 @@ +package com.inmind.interface_default02; + +public class MyInterfaceImpl2 implements MyInterface{ + @Override + public void method() { + System.out.println("实现类MyInterfaceImpl2的method方法"); + } + + //ctrl+o + @Override + public void method1() { + //MyInterface.super.method1();//重写的作用:沿用父类的功能 + System.out.println("实现类2重写了接口中的默认方法method1"); + } +}