JavaSE-接口-基础知识点整理

/*
接口是多个类的公共规范
是一种引用数据类型

Java 9中可以在接口包含的内容:
1.常量
2.抽象方法
3.默认方法
4.静态方法
5.私有方法

public abstract为接口的固定修饰符 可以选择性省略
方法中的三要素可以随意定义

1.接口类不能直接使用,必须又一个"实现类"来实现该接口
2.接口的实现类,必须覆盖接口中所有的抽象方法
3.创建实现类的对象

从Java8开始接口中可以有默认方法
public default 返回值类型 方法名称(){};
可以解决接口升级的问题
默认方法可被实现类重写

从Java8开始接口中可以有静态方法
public static 方法名(){方法体};
不能通过接口实现类来调用接口中的静态方法
通过接口名调用接口静态方法

接口私有方法:
抽取一个方法,解决两个接口方法之间的重复代码问题
1.普通私有方法:解决默认方法的重复
2.静态私有方法:解决静态方法的重复

接口常量:
public static final int num = 10; final:不可改变
故:接口常量一旦赋值,不可改变
使用接口名直接调用
常量名称完全大写,使用下划线分隔
*/

package learning.day5.Interface;

public interface MyInterfaceAbs {

    public static final int NUM_123 = 10;//接口常量

    public abstract void methodAbs();//接口中的抽象方法

    public default void methodDefault() {
        System.out.println( "这是新添加的默认方法!" );
    }

    public static void methodStatic() {
        System.out.println( "这是接口的静态方法!" );
    }

    private void methodDefaultCommon() {
        System.out.println( "这是一个普通的私有方法" );
    }

    private static void methodStaticCommon() {
        System.out.println( "这是一个静态的私有方法!" );
    }
}
package learning.day5.Interface;

public class MyInterface implements MyInterfaceAbs {

    @Override
    public void methodAbs() {
        System.out.println( "这是绝对值方法!" );
    }//实现接口总的抽象方法

    @Override
    public void methodDefault() {
        System.out.println( "这是重写后的静态方法!" );
    }//重写接口中的静态方法
}

package learning.day5.Interface;

public class MyInterfaceMain {
    public static void main(String[] args) {

        MyInterface inter = new MyInterface();//用接口实现类new对象

        inter.methodAbs();//调用接口实现类实现的原接口中抽象的方法

        inter.methodDefault();//调用接口的默认方法

        MyInterfaceAbs.methodStatic();//调用接口的静态方法

        int num = MyInterfaceAbs.NUM_123;//调用接口常量
        System.out.println( num );
    }
}

你可能感兴趣的:(JavaSE)