Java基础知识_接口和方法
接口
接口的组成
常量:public static final
抽象方法:public abstract
默认方法(Java8)
静态方法(Java9)
私有方法(Java9)
接口中的默认方法
格式: public default 返回值类型 方法名(参数列表){ } //public 可以省略,default 不能省略
注意事项:默认方法不是抽象方法,不强制被重写,但是可以被重写,重写的时候去掉default关键字
接口中的静态方法(Java 9)
格式:public static 返回值类型 方法名(参数列表){ } //public 可以省略,static 不能省略
注意事项:静态方法只能通过接口名调用,不能通过实现类名或者对象名调用
接口中的私有方法
格式1: private 返回值类型 方法名(参数列表){ }
格式2: private static 返回值类型 方法名(参数列表){ }
将相同代码提取出来
注意事项:默认方法可以调用私有的静态方法和非静态方法;静态方法只能调用私有的静态方法
方法
方法引用符
//首先定义一个接口Printable,里面含有一个有参方法
//:: //方法引用符
public class PrintableDemo {
public static void main(String[] args) {
//lambda表达式
//usePrintable(s -> System.out.println(s) );
//匿名内部类
//usePrintable(new Printable() {
// @Override
// public void printable(String s) {
// System.out.println(s);
// }
//});
//方法引用
usePrintable(System.out::println);//利用方法引用
}
public static void usePrintable(Printable p){
p.printable("我是小明同学,你好哇");
}
}
方法引用是lambda的孪生兄弟
Lambda表达式被类方法替代时,它的形式参数全部传递给静态方法作为参数
引用对象的实例方法
格式:对象::方法
PrintString ps = new PrintString();
usePrinter(ps::printUpper);
//ps为对象,printUpper为PrintString类中的方法
引用类的实例方法
格式:类名::成员方法
注意事项:lambda表达式被类的实例方法替代的时候,第一个参数作为调用者,后面的参数全部传递给该方法作为参数
引用构造器
格式:类名::new
注意事项:lambda表达式被构造器替代时,它的形式参数全部传递给构造器作为参数
版权声明:本文为weixin_64893448原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。