java

Java8 接口interface默认方法

2020-12-08  本文已影响0人  HachiLin

在 java 8 之前,接口与其实现类之间的 耦合度 太高了(tightly coupled),当需要为一个接口添加方法时,所有的实现类都必须随之修改。默认方法解决了这个问题,它可以为接口添加新的方法,而不会破坏已有的接口的实现。接口默认方法有两种:

1. 非静态默认方法

package com.test
public interface DefaultTest {
    default void print() {
        System.out.println("我是非静态方法!");
    }
}
package com.test
public class DefaultTestImpl implements DefaultTest {
    @Override
    public void print() {
        DefaultTest.super.print(); // 继承父亲的内容
        System.out.println("我是非静态方法儿子!");
    }
    public static void main(String[] args) {
        new DefaultTestImpl().print();
    } 
}

2. 静态默认方法

package com.test
public interface StaticTest {
    static void print() {
        System.out.println("我是静态方法!");
    }
}
package com.test
public class StaticTestImpl implements StaticTest {
    public static void main(String[] args) {
        StaticTest.print();
    } 
}
package com.another
import com.test.StaticTest;
public class StaticTestUser{
    public static void main(String[] args) {
        StaticTest.print();
    } 
}

参考文献

上一篇 下一篇

猜你喜欢

热点阅读