У «объекта расширения» есть цель или это избыточно? - PullRequest
24 голосов
/ 16 февраля 2010

После обучения в Интернете, посвященного разработке Soap с Java, я нашел эту ссылку , с довольно необычным для меня кодом.

Код:

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 ]

35 голосов
/ 16 февраля 2010

Если класс Object на самом деле не является классом java.lang.Object (учебник не включает импорт, поэтому его трудно увидеть), extends Object является избыточным.

10 голосов
/ 16 февраля 2010

Все объекты в Java неявно расширяют Object, поэтому я бы сказал, что это избыточно.

6 голосов
/ 16 февраля 2010

Все классы в любом случае расширяют Object неявно , так что это просто избыточное кодирование, не оказывающее влияния.

4 голосов
/ 16 февраля 2010

Похоже на сгенерированный код - для генератора исходного кода требуется дополнительное усилие, чтобы опустить предложение "extends", если оно не нужно, особенно если генератор основан на шаблонах.

3 голосов
/ 16 февраля 2010

Это просто означает, что он наследуется непосредственно от класса Object. Здесь больше о наследовании в Java.

2 голосов
/ 16 февраля 2010

Это не нужно. Каждый класс в Java расширяет объект на некотором уровне. Оставьте это, если вам не нужно уточнить что-то конкретное.

2 голосов
/ 16 февраля 2010

Нет. Он просто явно делает что-то неявное.

2 голосов
/ 16 февраля 2010

Предложение Extends является необязательным, как указано в Спецификация языка Java . Если он опущен, класс является производным от java.lang.Object. Это просто вопрос стиля кодирования - писать это или не писать в этом случае. Обычно это опускается.

2 голосов
/ 16 февраля 2010

Это глупый код. Каждый класс в Java расширяет класс Object. Нет необходимости вводить это явно

1 голос
/ 31 мая 2018

Я думаю, что это избыточно.

В исходном коде Junit:

public class TestFailure extends Object {}

Я не знаю, почему этот класс расширяет Object.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...