在互联网上关于使用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)。
这种语法是否有任何目的或者是“愚蠢”?
答案 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
。通过明确地写它们,他们不必猜测。