'extends Object'有目的还是多余?

时间:2010-02-16 17:04:54

标签: java

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

代码:

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)。

这种语法是否有任何目的或者是“愚蠢”?

17 个答案:

答案 0 :(得分:35)

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

答案 1 :(得分:10)

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

答案 2 :(得分:6)

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

答案 3 :(得分:4)

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

答案 4 :(得分:3)

它只是意味着它直接从Object类继承。 Here更多的是关于Java中的继承。

答案 5 :(得分:2)

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

答案 6 :(得分:2)

这是愚蠢的代码。 Java中的每个类都扩展了一个Object类。无需输入这个explisitly

答案 7 :(得分:2)

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

答案 8 :(得分:2)

没有。它只是明确地做了隐含的事情。

答案 9 :(得分:1)

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

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

答案 10 :(得分:1)

我的投票,简单的愚蠢 - 但后来我只玩Java ...

但据我所知,任何类都继承自Object Class ......

答案 11 :(得分:1)

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

答案 12 :(得分:1)

我认为这是多余的。

在Junit源代码中:

public class TestFailure extends Object {}

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

答案 13 :(得分:0)

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

答案 14 :(得分:0)

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

答案 15 :(得分:0)

默认情况下,所有类都扩展了java.lang.Object。你可以看到 here

答案 16 :(得分:-1)

为什么不明确?

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