没太明白老师你说的IntStream的of方法

来源:2-5 Java8 StreamT接口:流和管道是基础用法?

hellocp7

2021-03-03

就是你说这个用到了抽象工厂方法,能具体讲一下么?还有具体的static和default的区别,default动态的好处是什么?

还是说这里只是提一下后面你会在说?

写回答

1回答

求老仙

2021-03-03

hello, 这个后面确实有细讲。 不过这里我先回复你的疑问。 

static是静态方法,和Class的静态方法类似,接口允许静态方法大大简化了设计的难度,比如很多静态方法就不必非要挂靠Class。比如Stream.of, of是一个interface Stream定义的静态工厂方法,这个方法放在interface Stream是最佳选择,不然还得找一个工厂类。 Stream.of写起来很方便。

default是动态方法,实现接口的类,也可以使用default方法。这种设计简化了多继承。接口和抽象类很像,抽闲类的抽象方法可能调用其他抽象方法。比如Stream.takeWhile方法,这个default方法就定义在了Stream interface中,这样所有实现interafce Stream的Class都会拥有这个方法。

之所以非常需要default,是因为问题的重点在于接口的设计是一种组合~关系,耦合很低;多继承抽象类是的关系耦合较重。 如果,interface Stream不提供default方法,那么就需要实现为抽象类abstract class Stream,那是不是还需要一个IStream的接口呢?  

0
3
hellocp7
回复
求老仙
明白了。谢谢老师。
2021-03-03
共3条回复

笑傲Java面试 剖析大厂高频面试真题 秒变offer收割机

深度剖析大厂面试高频真题,让你秒变offer收割机

1783 学习 · 314 问题

查看课程