day10-接口interface-默认方法的使用

This commit is contained in:
2026-01-06 14:29:55 +08:00
parent 18ac3ca4ed
commit 48f8ab1e8d
8 changed files with 114 additions and 0 deletions

View File

@@ -29,4 +29,7 @@ public interface MyInterface {
public abstract void method();//抽象方法可以设置为私有吗不行必须只能是public public abstract void method();//抽象方法可以设置为私有吗不行必须只能是public
void method1();//前面会自动加上public abstract void method1();//前面会自动加上public abstract
void method2();
} }

View File

@@ -11,4 +11,9 @@ public class MyInterfaceImpl implements MyInterface{
public void method1() { public void method1() {
System.out.println("实现类MyInterfaceImpl实现重写了method1方法"); System.out.println("实现类MyInterfaceImpl实现重写了method1方法");
} }
@Override
public void method2() {
}
} }

View File

@@ -0,0 +1,18 @@
package com.inmind.interface_abstract01;
public class MyInterfaceImpl1 implements MyInterface{
@Override
public void method() {
}
@Override
public void method1() {
}
@Override
public void method2() {
}
}

View File

@@ -0,0 +1,18 @@
package com.inmind.interface_abstract01;
public class MyInterfaceImpl2 implements MyInterface{
@Override
public void method() {
}
@Override
public void method1() {
}
@Override
public void method2() {
}
}

View File

@@ -0,0 +1,26 @@
package com.inmind.interface_default02;
/*
接口是可以进行接口升级,添加功能,之前添加功能方法只能添加抽象方法,导致所有的实现类都必须要修改,这样非常麻烦
为了解决该问题在jdk8中添加了默认方法来解决。
默认方法的定义方法:
public default void method1(){
};
------------------------------------------------------
接口中默认方法的使用步骤:
1.接口是不能创建对象的
2.必须使用一个类实现该接口
3.创建实现类的对象才能调用接口中的默认方法
4.在接口的实现类中,可以根据对应的需求,可以选择重写或不重写接口中的默认方法
MyInterfaceDefault.super.method3();!!!!沿用父类功能)
*/
public class Demo02 {
public static void main(String[] args) {
MyInterfaceDefaultImpl1 impl1 = new MyInterfaceDefaultImpl1();
impl1.method3();
MyInterfaceDefaultImpl2 impl2 = new MyInterfaceDefaultImpl2();
impl2.method3();
}
}

View File

@@ -0,0 +1,10 @@
package com.inmind.interface_default02;
public interface MyInterfaceDefault {
public abstract void method1();
void method2();
public default void method3(){
System.out.println("这是MyInterfaceDefault接口升级的method3的默认功能");
};
}

View File

@@ -0,0 +1,13 @@
package com.inmind.interface_default02;
public class MyInterfaceDefaultImpl1 implements MyInterfaceDefault{
@Override
public void method1() {
}
@Override
public void method2() {
}
}

View File

@@ -0,0 +1,21 @@
package com.inmind.interface_default02;
public class MyInterfaceDefaultImpl2 implements MyInterfaceDefault{
@Override
public void method1() {
}
@Override
public void method2() {
}
@Override
public void method3(){
//沿用接口的默认功能
MyInterfaceDefault.super.method3();
//扩展一些新的功能
System.out.println("MyInterfaceDefaultImpl2不满意默认功能重写实现了method3的新的功能");
};
}