‘extends Object’有目的还是多余?

在互联网上关于使用Java进行Soap开发的教程之后,我发现了这个链接 ,我自己编写了一个相当不寻常的代码。

代码:

public class SoapService extends Object { /** Creates new SoapService */ public SoapService() { } /** This is the SOAP exposes method */ public String sayGreeting(String name) { return "Hello "+name; } } 

什么是’extends Object’语法? 我从未遇到过这种语法(仅限Generics)。

这种语法有什么用途还是“简单愚蠢”?

除非Object类实际上不是java.lang.Object类(该教程不包含导入,因此很难看到),否则extends Object是多余的。

Java中的所有对象都隐式地扩展了Object ,所以我认为它是多余的。

无论如何,所有类都隐式地扩展了Object,因此它只是冗余编码而没有任何影响。

看起来有点像生成的代码 – 如果不需要,源代码生成器省略 “extends”子句是额外的努力,特别是如果生成器是基于模板的。

它只是意味着它直接从Object类inheritance。 这里有更多关于Java的inheritance。

不,它只是明确地做了隐含的事情。

这是不必要的。 Java中的每个类都在某种程度上扩展了Object。 除非你需要澄清一些特定的东西,否则不要这样做。

Extends子句是可选的,如Java语言规范中所述 。 如果省略,则该类派生自java.lang.Object。 在这种情况下写入或不写入它只是编码风格的问题。 通常它被省略。

这是愚蠢的代码。 Java中的每个类都扩展了一个Object类。 无需明确地输入此内容

我的投票,简单的愚蠢 – 但后来我只玩Java …

但据我所知,任何类都inheritance自Object Class …

这是合法但无用的样板。 一切都扩展了对象,所以语言规范允许你把它留下来,一般都应该省略(一些编码标准的编写者不同意)。

generics中的情况是相同的(扩展对象是隐式的和冗余的),只是出于某种原因(我已经看到一些声称早期的错误generics实现与?通配符有问题)它已经在那里发现了更多。

有一种可能性,那就是制造它的人不希望你扩展任何课程。 当然,你可以随时做一个解决方法,但这是我能想到的唯一有意义的事情。

我认为这是多余的。

在Junit源代码中:

 public class TestFailure extends Object {} 

我不知道为什么这个类扩展了Object。

由于java是面向对象的语言,它支持inheritanceinheritance另一个类的属性的inheritance,例如所有java对象都inheritance自java.lang.Object类。从上面的例子可以理解,它是inheritance的解释。 请注意,所有类,无论它们是否适用,都将inheritance自java.lang.Object。

任何未显式扩展另一个类的类都会隐式扩展Object

默认情况下,所有类都扩展java.lang.Object。 你可以在这里看到它

为什么不明确?

我要添加它 – 不是每个人都“隐式地”知道每个Java类都隐式地扩展了Object 。 通过明确地写它们,他们不必猜测。