Java核心技术知识点笔记—接口

前言:Java程序设计语言中,接口用来对类进行需求描述。它描述了一个类具有的功能。


1、概念:Java中,接口不是类,而是对类的一组需求描述,描述了类具有的功能。接口描述了类所具有的功能,一般不对功能做具体的实现(可以为接口中的方法提供一个默认的实现,使用default修饰符标记方法,Java SE 8允许接口增加静态方法),功能的具体实现由实现接口的类依据各自的需求自行实现。


2、定义和实现接口:


(1)定义:Java中使用interface修饰符标记来定义接口。


(2)实现:一个类可以通过关键字implement实现一个或多个接口。实现了接口的类,必须实现接口中所定义的所有未实现的方法,或者必须将类设计为abstract的。


public interface TestInterfaceA {
    void funTestA(); 

    static void funTestB() { //静态方法
        System.out.print("Interface Static fun");
    }

    default void funTestC() { //默认方法
        System.out.print("Interface Default fun");
    }
}



如上,定义了一个接口TestInterfaceA,在这个接口中,定义了一个未实现的方法funTestA,所有实现了这个接口的非抽象类都须实现funTestA方法;funTestB方法是一个静态方法,这是Java SE 8中新增加的特性;funTestC方法用default标记,说明这是一个默认方法,提供了默认实现。


3、默认方法冲突:


(1)超类优先:如果一个类的超类和它所实现的接口同时定义了一个同样的方法(同名且同参数,且该方法在接口中被定义为默认方法),那么将以超类的方法为准,接口中定义的默认方法会被忽略。


public class STestA {

    public void testDefaultFun(){
        System.out.print("STestA");
    }
}

public interface ITestA {

    default void testDefaultFun(){
        System.out.print("ITestA");
    }
}

public class TestImpl extends STestA implements ITestA {

}



如上,在类STestA和接口ITestA中同时定义一个相同的testDefaultFun方法,类TestImpl继承类STestA并且实现了接口ITestA,此时编译器显示没有问题。当在其他程序中通过TestImpl的一个实例对象调用方法testDefaultFun时,将输出“STestA”。


(2)接口冲突:如果一个类实现了多个接口(未继承其他超类),在每个接口中都提供了一个同样的默认方法,则类必须覆盖这个方法来解决冲突。


public interface ITestA {

    default void testDefaultFun(){
        System.out.print("ITestA");
    }
}

public interface ITestB {

    default void testDefaultFun(){
        System.out.print("ITestB");
    }
}

public class TestImpl implements ITestA ,ITestB{

    @Override
    public void testDefaultFun() {
        ITestA.super.testDefaultFun();
    }
}



如上,两个接口ITestA和ITestB同时定义了相同的方法testDefaultFun,类TestImpl实现了接口ITestA和ITestB,此时,如果没有在TestImpl类中覆盖方法testDefaultFun,编译器将会报错,当覆盖了这个方法后,编译器报错消失。

展开阅读全文

更新时间:2024-08-24

标签:接口   编译器   知识点   静态   前言   标记   冲突   定义   需求   功能   笔记   方法

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top