day09-接口的默认方法的定义和使用
This commit is contained in:
24
day10/src/com/inmind/interface_default02/Demo02.java
Normal file
24
day10/src/com/inmind/interface_default02/Demo02.java
Normal file
@@ -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();//直接重写父接口提供 默认方法
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package com.inmind.interface_default02;
|
||||
|
||||
public interface MyInterface {
|
||||
public abstract void method();
|
||||
//添加新的功能方法,不想影响已经定义好的实现类
|
||||
public default void method1(){
|
||||
System.out.println("接口默认提供的method1方法");
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
package com.inmind.interface_default02;
|
||||
|
||||
public class MyInterfaceImpl1 implements MyInterface{
|
||||
@Override
|
||||
public void method() {
|
||||
System.out.println("实现类MyInterfaceImpl1的method方法");
|
||||
}
|
||||
}
|
||||
@@ -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");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user