【Java8新特性】- 介面中默認方法修飾為普通方法

Java8新特性 – 介面中默認方法修飾為普通方法

😄生命不息,寫作不止
🔥 繼續踏上學習之路,學之分享筆記
👊 總有一天我也能像各位大佬一樣
🏆 一個有夢有戲的人 @怒放吧德德
🌝分享學習心得,歡迎指正,大家一起學習成長!

新特性.jpg

介面中默認方法修飾為普通方法

在java8之前,介面類可以定義變數和方法,變數必須要public、static、final修飾,方法需要public、abstract修飾。方法由子類來實現。介面方法默認是public,如果多加了public就會顯示冗餘的public。
image.png

在jdk8之後,java就能夠通過default和static修飾,直接編寫方法體,無需子類去實現。當我們直接在介面類中編寫帶方法體的方法時,idea就會提示介面抽象方法不能有方法體。
image.png

default、static修飾

當我們使用default修飾的時候,idea就會提示不支援此方法。
image.png

我們就將其設置為java8級別,之後就能用了。
image.png

這樣就都能用了

案例程式碼

package com.jdk8.demo.method;

/**
 * @author: lyd
 * @description: 聲明介面
 * @Date: 2022/10/4
 */
public interface InterfaceMethod {
    void PubMethod();

    default void DefaultMethod() {
        System.out.println("使用default修飾");
    }
    
    static void StaticMethod() {
        System.out.println("使用static修飾");
    }
}

在實現類中,一定需要實現的是沒有方法體的,修飾了static是不可以子類去實現的。
這裡就實現未實現的方法。

package com.jdk8.demo.method.impl;

import com.jdk8.demo.method.InterfaceMethod;

/**
 * @author: lyd
 * @description: 實現類
 * @Date: 2022/10/4
 */
public class InterfaceMethodImpl implements InterfaceMethod {
    @Override
    public void PubMethod() {
        System.out.println("public方法");
    }
}

測試

package com.jdk8.demo.method;

import com.jdk8.demo.method.impl.InterfaceMethodImpl;

/**
 * @author: lyd
 * @description: 測試
 * @Date: 2022/10/4
 */
public class Itest {
    public static void main(String[] args) {
        InterfaceMethod interfaceMethod = new InterfaceMethodImpl();
        interfaceMethod.PubMethod();
        interfaceMethod.DefaultMethod();
        InterfaceMethod.StaticMethod();
    }
}

運行結果
image.png

感謝觀看!

Tags: