177/178接口的静态方法的定义和使用
接口的静态方法定义
从java 8 开始,接口当中允许定义静态方法
格式:
public static 返回值类型 方法名称(参数列表){ 方法体 }
/* * 从java开始,接口当中允许定义静态方法。 * 格式: * public static 返回值类型 方法名称(参数列表){ * //方法体 * } * 提示:就是将abstract或者default换成static即可,带上方法体。 * * */ public interface MyInterfataceStatic { public static void methodStatic(){ System.out.println("这是接口的静态方法!"); } }
提示:就是将abstract或者default换成static即可,带上方法体
接口的静态方法使用
注意事项:
不能通过接口实现类的对象来调用接口当中的静态方法
正确用法:通过接口名称,直接调用其中的静态方法
格式:
接口名称 . 静态方法名(参数)
接口 public interface MyInterfaceStatic { public static void methodStatic(){ System.out.println("这是接口的静态方法"); }} 实现类 public class MyInterfaceStaticImpl implements MyInterfaceStatic { public static void main(String[] args) { //创建了实现类对象 MyInterfaceStaticImpl myInterfaceStatic = new MyInterfaceStaticImpl(); //错误写法 // myInterfaceStatic.methodStatic; //直接通过接口名称调用静态方法 MyInterfaceStatic.methodStatic(); }}
//定义一个接口 public interface MyInterfaceStatic { public static void methodStatic(){ System.out.println("这是接口的静态方法"); }} //接口的实现类,里面没有抽象方法 public class MyInterfaceStaticImpl implements MyInterfaceStatic { } //main方法 public class Demo03Interface { public static void main(String[] args) { //创建了实现类对象 MyInterfaceStaticImpl impl=new MyInterfaceStaticImpl(); //impl.methodStatic();报错,不能通过实现类的对象来调用接口当中的静态方法 //直接通过接口名称调用静态方法 MyInterfaceStatic.methodStatic(); }}
//定义一个接口 public interface MyInterfaceStatic { public static void methodStatic(){ System.out.println("这是接口的静态方法"); }} //接口的实现类,里面没有抽象方法 public class MyInterfaceStaticImpl implements MyInterfaceStatic { } //main方法 public class Demo03Interface { public static void main(String[] args) { //创建了实现类对象 MyInterfaceStaticImpl impl=new MyInterfaceStaticImpl(); //impl.methodStatic();报错,不能通过实现类的对象来调用接口当中的静态方法 //直接通过接口名称调用静态方法 MyInterfaceStatic.methodStatic(); }}
public interface MyInterfaceStatic { public static void methodStatic() { System.out.println("这是接口的静态方法!"); }} public class MyInterfaceStaticimpl implements MyInterfaceStatic { } public class Demo03Interfacestatic { public static void main(String[] args) { MyInterfaceStaticimpl mm=new MyInterfaceStaticimpl(); //错误写法,不能调用mm.methodStatic();(静态与对象没有关系); //正确写法,通过接口名称直接调用接口内的静态方法; MyInterfaceStatic.methodStatic(); }}