Наследовать недействительный метод

Я хочу знать, как я могу переопределить метод void из суперкласса:

public class Father
{
    public void showName(String name){
        System.out.println("My name is :"name);
    }
}

public class Children extends Father
{
    public void showName(String name)
    {
        super.showName()+System.out.println("my name is: "+name);
    }
}

super.showName()+System.out.println("my name is: "+name); Я знаю, что эта команда не скомпилируется, но как я могу переопределить этот метод void?

Используйте @override выше public void showName(String name) в классе Children.

Michael Bianconi 05.07.2019 20:09

Что ты хочешь делать? Что должен делать метод showName? Показать имя отца? Показать имя ребенка?

Pavel Molchanov 05.07.2019 20:10

Повторно объявляя метод в подклассе, вы являются переопределяете метод. Что именно вы хотите сделать?

WJS 05.07.2019 20:10

Да, ты можешь. убери часть + и все заработает

Nir Levy 05.07.2019 20:10

@NirLevy нет, это не работает ..

Jordan_boy 05.07.2019 20:24

@PavelMolchanov я хочу создать объект дочернего класса и одновременно напечатать имя отца и имя ребенка, используя метод «Имя» дочернего класса, вместо создания 2 объектов из 2 классов

Jordan_boy 05.07.2019 20:25
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
6
600
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете переопределить метод, который имеет возвращаемый тип void, как и любой другой метод, вы просто не можете использовать его возвращаемое значение super, поскольку у него его нет. Например.:

public class Children extends Father {

    @Override
    public void showName(String name) {
        super.showName(name);
        System.out.println("my name is: " + name);
    }
}

Сказав это, это довольно сомнительный дизайн, и, вероятно, было бы более разумно иметь метод, который принимает этот параметр name и строит из него строку, оставляя фактическую печать вызывающей стороне.

Другие вопросы по теме