接口组成更新概述:
接口的组成:
常量
public static final
抽象方法
public abstract
默认方法java8
静态方法java8
私有方法java9
接口中默认方法
接口中默认方法的定义格式:
格式:public default 返回值类型方法名(参数列表){ }
范例:public default void show3() { }
接口中默认方法的注意事项
默认方法不是抽象方法,所以不强制被重写。但是可以被重写,重写的时候去掉default关键字
public可以省略,default不能省略
package com.aynu19;public interface MyInterface {void show1();void show2();// void show3();
// public default void show3(){
// System.out.println("show3");
// }default void show3(){System.out.println("show3");}
}
package com.aynu19;public class MyInterfaceDemo {public static void main(String[] args) {//按照多态的方式创建对象并使用MyInterface my=new MyInterfacelone();my.show1();my.show2();my.show3();MyInterfaceImplTwo my1=new MyInterfaceImplTwo();my1.show1();my1.show2();my1.show3();}
}
package com.aynu19;public class MyInterfaceImplTwo implements MyInterface{@Overridepublic void show1() {System.out.println("Two show1");}@Overridepublic void show2() {System.out.println("Two show2");}
}
package com.aynu19;public class MyInterfacelone implements MyInterface{@Overridepublic void show1() {System.out.println("One show1");}@Overridepublic void show2() {System.out.println("One show2");}@Overridepublic void show3() {System.out.println("One show3");}
}
package com.aynu19;public interface MyInterfaceSon extends MyInterface{void show3();
}
One show1
One show2
One show3
Two show1
Two show2
show3
接口中静态方法的定义格式:
格式:public static 返回值类型 方法名(参数列表){ }
范例:public static void show(){ }
接口中静态方法的注意事项:
静态方法只能通过接口名调用,不能通过实现类名或者对象名调用
public可以省略,static不能省略
package com.aynu20;public interface Inter {//抽象方法void show();//默认方法default void method(){System.out.println("Inter 中的默认方法执行了");}//静态方法public static void test(){System.out.println("Inter 中的静态方法执行了");}
}
package com.aynu20;public class InterDemo {public static void main(String[] args) {//按照多态的方法创建对象并使用Inter i=new InterImpl();i.show();i.method();
// i.test();Inter.test();
// InterImpl.test();}
}
package com.aynu20;public class InterImpl implements Inter{@Overridepublic void show() {System.out.println("show方法执行了");}
}
show方法执行了
Inter 中的默认方法执行了
Inter 中的静态方法执行了
接口中私有方法:
接口中私有方法的定义格式:
格式1:private返回值类型 方法名(参数列表){ }
范例1:private void show(){ }
格式2:private static 返回值类型 方法名(参数列表){ } //静态的私有方法
范例2:private static void method(){ }
接口中私有方法的注意事项:
默认方法可以调用私有的静态方法和非静态方法
静态方法只能调用私有的静态方法
package com.aynu21;public interface Inter {default void show1(){System.out.println("show1开始执行");
// System.out.println("初级工程师");
// System.out.println("中级工程师");
// System.out.println("高级工程师");show();System.out.println("show1结束执行");}default void show2(){System.out.println("show2开始执行");
// System.out.println("初级工程师");
// System.out.println("中级工程师");
// System.out.println("高级工程师");show();System.out.println("show2结束执行");}private void show(){System.out.println("初级工程师");System.out.println("中级工程师");System.out.println("高级工程师");}static void method1(){System.out.println("method1开始执行");
// System.out.println("初级工程师");
// System.out.println("中级工程师");
// System.out.println("高级工程师");method();System.out.println("method1结束执行");}static void method2(){System.out.println("method2开始执行");
// System.out.println("初级工程师");
// System.out.println("中级工程师");
// System.out.println("高级工程师");method();System.out.println("method2结束执行");}private static void method(){System.out.println("初级工程师");System.out.println("中级工程师");System.out.println("高级工程师");}
}
package com.aynu21;public class InterDemo {public static void main(String[] args) {//按照多态的方式创建对象并使用Inter i =new InterImpl();i.show1();System.out.println("--------");i.show2();System.out.println("--------");Inter.method1();System.out.println("--------");Inter.method2();}
}
package com.aynu21;public class InterImpl implements Inter{}
show1开始执行
初级工程师
中级工程师
高级工程师
show1结束执行
--------
show2开始执行
初级工程师
中级工程师
高级工程师
show2结束执行
--------
method1开始执行
初级工程师
中级工程师
高级工程师
method1结束执行
--------
method2开始执行
初级工程师
中级工程师
高级工程师
method2结束执行