java 8 default_Java8 default方法

本文展示了Java中多态的使用,包括如何通过ISuper接口实现不同子类(ISuperImpl2, ISuperImpl3)的方法覆盖和调用。代码示例演示了静态方法和非静态方法的调用,以及如何使用filter方法根据条件筛选对象数组并打印其值。
摘要由CSDN通过智能技术生成

importjava.util.Arrays;/***

*@authormdyb

* date: 2017/8/11

* file: ISuperImpl.java*/

public class ISuperImpl implementsISuper {public static voidmain(String[] args) {

ISuper iSuper= newISuperImpl();

iSuper.showClass();//无覆盖直接调用

System.out.println("\n====================");

ISuper iSuper2= newISuperImpl2();

iSuper2.showClass();//调用覆盖的方法

System.out.println("\n====================");

ISuper iSuper3= newISuperImpl3();

iSuper3.showClass();

System.out.println("\n====================");

ISuper iSuper31= newISuperImpl3();

ISuper iSuper21= newISuperImpl2();

ISuper iSuper11= newISuperImpl();

System.out.println("iSuper value = " +iSuper.getValue());

ISuper[] s= ISuper.filter(5000, iSuper, iSuper11, iSuper2, iSuper21, iSuper3, iSuper31);

ISuper[] s2= ISuper.filter(4000, iSuper, iSuper11, iSuper2, iSuper21, iSuper3, iSuper31);

Arrays.stream(s).forEach((a)-> System.out.print(a.getValue() + " "));

System.out.println();

Arrays.stream(s2).forEach((a)-> System.out.print(a.getValueRandom() + " "));

}private int value = (int) (Math.random() * 2000);

@Overridepublic intgetValueRandom() {return value + 3333;

}

@Overridepublic intgetValue() {returnvalue;

}

}class ISuperImpl2 implementsISuper {private int value = (int) (Math.random() * 777);//default 方法可以覆盖

@Overridepublic voidshowClass() {

System.out.println("before");

ISuper.super.showClass();

System.out.println("after");

}

@Overridepublic intgetValueRandom() {return (value + 2000) * 2;

}

@Overridepublic intgetValue() {returnvalue;

}

}class ISuperImpl3 implementsISuper {privateString status;private int value = (int) (3141 + Math.random() * 600);publicISuperImpl3() {

status= getClass().getName() +System.currentTimeMillis();

}

@Overridepublic voidshowClass() {

System.out.println("class status of calling this method: "+status + System.currentTimeMillis() + "\n" +Math.random());

}

@Overridepublic intgetValueRandom() {return (value + status.length() - (int) (1333 * Math.random())) / 2;

}

@Overridepublic intgetValue() {returnvalue;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值