java接口中私有方法定义和使用(解决代码重复的问题)
程序员文章站
2024-02-17 17:01:46
...
定义接口类,里面有默认方法还有私有方法
package day0614;
public interface Demo01default {
//定义默认方法
public default void defaultMethod1(){
System.out.println("第一个默认方法");
defaultCommon();
}
public default void defaultMethod2(){
System.out.println("第二个默认方法");
defaultCommon();
}
private void defaultCommon(){
System.out.println("1111");
System.out.println("2222");
System.out.println("3333");
}
}
图片如下:
要有一个类实现接口里面的成员方法:
package day0614;
public class Demo01UseDefault implements Demo01default{
}
图片版:
实例化对象来调用接口里面成员方法。
package day0614;
public class Demo01 {
public static void main(String[] args) {
Demo01UseDefault d1 = new Demo01UseDefault();
d1.defaultMethod1();
d1.defaultMethod2();
}
}
图片版:
运行结果如下:
上面第一个例子是用默认成员方法,接下来静态成员方法试试:
从上篇推文静态方法使用那篇文章可以可知,用静态成员方法就不用实现类了,直接接口调用就行,贪图方便,我就不该类名称了,改一下参数内容
先定义接口类,然后里面有静态成员方法还有私有成员方法:
package day0614;
public interface Demo01default {
//定义默认方法
public static void staticMethod1(){
System.out.println("第一个默认方法");
staticCommon();
}
public static void staticMethod2(){
System.out.println("第二个默认方法");
staticCommon();
}
private static void staticCommon(){
System.out.println("aaa");
System.out.println("bbb");
System.out.println("ccc");
}
}
图片版:
实现:
package day0614;
public class Demo01 {
public static void main(String[] args) {
Demo01default.staticMethod1();
Demo01default.staticMethod2();
}
}
图片版:
运行结果:
写在最后:当你在定义类的时候想抽取一个共有方法的时候(可以用来解决代码重复的问题),就可以有私有化来实现