概述
gitee
package com.xcrj.java8.defaultfunc;
/**
* xcrj 接口静态方法,接口默认方法,让接口具有抽象能力和向下兼容能力
* 接口默认方法出现的原因:接口增加抽象方法,修改抽象方法之后,所有的实现类都需要修改,破坏了向下兼容
* 接口的静态方法,只能通过接口名.静态方法调用
* 接口默认方法, 通过实现类调用
* 接口默认方法,可以被@Override
* - 实现类@Override接口的default方法,调用实现类的方法
* 为了向下兼容
* - 类 extends类 implements接口,调用继承类的方法,类优先(为了向下兼容)
* 类 implements接口1,接口2,必须@Override default方法
*/
public class Test1 {
public static void main(String[] args) {
// 调用接口静态方法
MyInterface.staticFunc();
// 调用接口默认方法
ImplClass implClass=new ImplClass();
implClass.defaultFunc();
// 类实现接口的默认方法
MyInterface implClass1=new ImplClass1();
implClass1.defaultFunc();
// 类 extends类 implements接口,类优先(为了向下兼容)
ImplClass2 implClass2=new ImplClass2();
implClass2.defaultFunc();
}
}
package com.xcrj.java8.defaultfunc;
public interface MyInterface {
static void staticFunc(){
System.out.println("static MyInterface");
}
default void defaultFunc(){
System.out.println("default MyInterface");
}
}
package com.xcrj.java8.defaultfunc;
public class ImplClass implements MyInterface {
}
package com.xcrj.java8.defaultfunc;
// 可以重写
public class ImplClass1 implements MyInterface{
@Override
public void defaultFunc(){
System.out.println("ImplClass1");
}
}
package com.xcrj.java8.defaultfunc;
public class MyClass {
public void defaultFunc(){
System.out.println("MyClass defaultFunc");
}
}
package com.xcrj.java8.defaultfunc;
// 类优先
public class ImplClass2 extends MyClass implements MyInterface{
}
package com.xcrj.java8.defaultfunc;
public interface MyInterface2 {
default void defaultFunc(){
System.out.println("default MyInterface2");
}
}
package com.xcrj.java8.defaultfunc;
// 必须重写
public class ImplClass3 implements MyInterface,MyInterface2 {
@Override
public void defaultFunc(){
System.out.println("MyClass3 defaultFunc");
}
}
最后
以上就是典雅冬日为你收集整理的java8/接口方法,default,static的全部内容,希望文章能够帮你解决java8/接口方法,default,static所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复