在最近的一个问题上,我谈到了Number抽象类的使用。既然Java8在这里,就有默认的方法,所以Number可以是一个接口,并编写为: public int intValue();
return (short)intValue();}
如果是这样的话,使用Number抽象类的旧代码还会编译吗使Number成为接口而不是抽象类有什么实际
我知道已经有一个与此相关的问题,,但是这个问题是在Java8发布之前被问到的,它只是抽象类和默认方法接口之间的区别的一个要点,它根本没有提供任何实际的例子,而是充满了文字的解释。我之所以发布这个问题,是因为我更感兴趣的是一个实际示例,它用Java 8中的默认方法清除了抽象类和接口之间的区别。看看这个例子,abstract class AbstractClass {
// These methods must be
但我想确保我明白它的好处和可能的实现。List myList = new ArrayList();而不是ArrayList myList = new ArrayList();。关于这一点,我有两个问题:
我想确保我理解这种方法的主要好处。我认为好处主要是灵活性。将对象声明为更高级别的引用,而不是具体的实现,可以在整个开发周期和整个代码中提供更