> Java > java지도 시간 > Java 인터페이스 구성 업데이트 구현 방법

Java 인터페이스 구성 업데이트 구현 방법

WBOY
풀어 주다: 2023-05-11 22:58:04
앞으로
1096명이 탐색했습니다.

1.1 인터페이스 구성 개요 업데이트됨

  • 인터페이스 구성

    • 상수: public static finalpublic static final

    • 抽象方法:public abstract

    • 默认方法(Java 8)

    • 静态方法(Java 8)

    • 私有方法(Java 9)

1.2 接口中默认方法(JDK8)

我们都知道,一个类实现一个接口,就要重写这个接口中的所有抽象方法。但现在接口中新增了一个方法,实现这个接口的类不想重写这个方法怎么办?这时就可以使用接口中默认方法,它不强制被重写,而且还可以提供方法体。

  • 接口中默认方法的定义格式:

    • 格式:public default 返回值类型 方法名(参数列表){}

    • 范例:public default void show(){}

  • 接口中默认方法的注意事项:

    • 默认方法不是抽象方法,所以不强制被重写。但是可以被重写,重写的时候去掉default关键字

    • public可以省略,default不能省略:default void show(){}

1.3 接口中静态方法(JDK8)

  • 接口中静态方法的定义格式:

    • 格式:public static 返回值类型 方法名(参数列表){}

    • 范例:public static void show(){}

  • 接口中静态方法的注意事项:

    • 静态方法只能通过接口名调用, 不能通过实现类名或者对象名调用

    • public可以省略, static不能省略:static void show(){}

  • 接口

package test;

public interface Inter {
    void show();

    default void method() {
        System.out.println("默认方法");
    }

//    public static void test(){
//        System.out.println("静态方法");
//    }

    static void test(){
        System.out.println("静态方法");
    }
}
로그인 후 복사
  • 实现类

package test;

public class InterImpl implements Inter{
    @Override
    public void show() {
        System.out.println("show方法");
    }
}
로그인 후 복사
  • 测试类

package test;

public class Demo {
    public static void main(String[] args) {
        Inter i = new InterImpl();
        i.show(); //show方法
        i.method(); //
//        i.test(); //报错

        Inter.test(); //静态方法,接口名调用静态方法
    }
}
로그인 후 복사

1.4 接口中私有方法(JDK9)

Java 9 中新增了带方法体的私有方法,这其实在 Java 8 中就埋下了伏笔:Java 8 允许在接口中定义带方法体的默认方法和静态方法。这样可能就会引发一个问题:当两个默认方法或者静态方法中包含一段相同的代码实现时,程序必然考虑将这段实现代码抽取成一个共性方法,而这个共性方法是不需要让别人使用的,因此用私有给隐藏起来,这就是 Java 9 增加私有方法的必然性 。

  • 接口中私有方法的定义格式

    • 格式1(非静态)private 返回值类型 方法名(参数列表){}

    • 范例1:private void show() {}

    • 格式2(静态)private static 返回值类型 方法名(参数列表){}

    • 范例2:private static void method() {}

    추상 메서드: public abstract
  • 기본 메서드(Java 8)

    • 정적 메서드(Java 8)

    • 개인 메서드(Java 9)

1.2 인터페이스의 기본 메서드(JDK8)🎜🎜우리 모두는 클래스가 있다는 것을 알고 있습니다. 구현 인터페이스의 경우 이 인터페이스의 모든 추상 메서드를 다시 작성해야 합니다. 그러나 이제 인터페이스에 새로운 메서드가 있습니다. 이 인터페이스를 구현하는 클래스가 이 메서드를 재정의하지 않으려면 어떻게 해야 합니까? 이때 강제로 재정의되지 않은 인터페이스의 기본 메소드를 사용할 수 있으며, 메소드 본문을 제공할 수도 있습니다. 🎜🎜🎜🎜인터페이스의 기본 메서드 정의 형식: 🎜🎜🎜🎜🎜형식: 공개 기본 반환 값 유형 메서드 이름(매개변수 목록){}🎜🎜🎜🎜예: public default void show(){}🎜🎜🎜🎜🎜인터페이스의 기본 메서드에 대한 참고 사항:🎜🎜🎜🎜🎜기본 메서드는 추상 메서드가 아니므로 강제로 재정의되지 않습니다. 하지만 다시 작성할 때 기본 키워드를 제거하세요. 🎜🎜🎜🎜public은 생략할 수 있지만 기본값은 생략할 수 없습니다: default void show(){}🎜🎜🎜🎜🎜1.3 정적 메서드 인터페이스(JDK8) 🎜🎜🎜🎜인터페이스의 정적 메서드 정의 형식: 🎜🎜🎜🎜🎜형식: 공개 정적 반환 값 유형 메서드 이름(매개변수 목록){}🎜🎜🎜🎜예: public static void show(){}🎜🎜🎜🎜🎜인터페이스의 정적 메서드에 대한 참고 사항: 🎜🎜🎜🎜🎜정적 메서드는 구현 클래스 이름이나 구현 클래스 이름이 아닌 🎜인터페이스 이름🎜을 통해서만 호출할 수 있습니다. 객체 이름 🎜🎜🎜🎜public 호출은 생략 가능, static 생략 불가: static void show(){}🎜🎜🎜🎜🎜interface🎜🎜🎜
package test;

public interface Inter {
    default void show1() {
        System.out.println("show1开始执行");
//        System.out.println("初级工程师");
//        System.out.println("中级工程师");
//        System.out.println("高级工程师");
//        show();
        method();
        System.out.println("show1结束");
    }


    static void method1() {
        System.out.println("method1开始执行");
//        System.out.println("初级工程师");
//        System.out.println("中级工程师");
//        System.out.println("高级工程师");
        method();
        System.out.println("method1结束");
    }

    private void show(){
        System.out.println("初级工程师");
        System.out.println("中级工程师");
        System.out.println("高级工程师");
    }

    private static void method(){
        System.out.println("初级工程师");
        System.out.println("中级工程师");
        System.out.println("高级工程师");
    }
}
로그인 후 복사
🎜🎜🎜구현 클래스🎜🎜🎜rrreee 🎜🎜🎜테스트 클래스 🎜🎜🎜rrreee🎜1.4 인터페이스의 전용 메서드(JDK9) 🎜🎜메서드 본문이 있는 새로운 전용 메서드가 Java 9에 추가되어 실제로 Java 8의 기반이 되었습니다. Java 8에서는 인터페이스에서 메서드를 정의할 수 있습니다. 본문의 기본 및 정적 메서드입니다. 이로 인해 문제가 발생할 수 있습니다. 두 개의 기본 메소드 또는 정적 메소드에 동일한 코드 구현이 포함된 경우 프로그램은 이 구현 코드를 공통 메소드로 추출하는 것을 고려해야 하며 이 공통 메소드는 다른 사람이 사용할 필요가 없으므로 숨겨져 있습니다. 이는 Java 9에서 개인 메소드를 추가해야 하는 필요성입니다. 🎜🎜🎜🎜🎜인터페이스의 개인 메서드 정의 형식 🎜: 🎜🎜🎜🎜🎜🎜형식 1(비정적) 🎜: 개인 반환 값 유형 메서드 이름(매개변수 목록) {}🎜🎜 🎜 🎜예 1: private void show() {}🎜🎜🎜🎜🎜Format 2(정적)🎜: private 정적 반환 값 유형 메서드 이름(매개변수 목록){} 🎜🎜🎜🎜예 2: private static void method() {}🎜🎜🎜🎜🎜🎜인터페이스🎜의 프라이빗 메서드에 대한 참고 사항🎜: 🎜🎜🎜🎜🎜기본 메서드는 프라이빗 정적 메서드를 호출할 수 있습니다. 비정적 메서드🎜🎜🎜🎜정적 메서드는 전용 정적 메서드만 호출할 수 있습니다🎜🎜🎜🎜rrreee

위 내용은 Java 인터페이스 구성 업데이트 구현 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:yisu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿