我已经知道我们更喜欢在扩展线程上实现Runnable接口,因为它为我们的类提供了灵活性,我们可以在将来扩展其他类。当我们扩展Thread类时,这是不可能的,因为Java不支持多重继承(在Java 8之前)。现在,当Java 8发布时,我们可以使用多重继承,因此这两种方法都很灵活。 我的问题是在Java 8的上下文中实现Runnable接口而不是扩展Thread类有什么优缺点?非常感谢提前:)。
答案 0 :(得分:4)
您也无法在Java 8中扩展多个类。 In java document,显然写得
Java编程语言不允许您使用的一个原因 扩展多个类是为了避免多重问题 继承状态,即从中继承字段的能力 多个班级。
和
Java编程语言支持多种类型的继承, 这是一个类实现多个接口的能力。 一个对象可以有多种类型:它自己的类的类型和 类实现的所有接口的类型。
实现包含相同默认方法的多个接口是form of multiple inheritance.,再次from the same javadoc ...
与实现的多重继承一样,类可以继承 定义的方法的不同实现(默认或静态) 在它扩展的接口中。在这种情况下,编译器或 用户必须决定使用哪一个。
所以在任何版本的java中,你都不能扩展多个类Thus answer to your question remains unchanged.