Я хочу знать, как я могу переопределить метод 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?
Что ты хочешь делать? Что должен делать метод showName? Показать имя отца? Показать имя ребенка?
Повторно объявляя метод в подклассе, вы являются переопределяете метод. Что именно вы хотите сделать?
Да, ты можешь. убери часть + и все заработает
@NirLevy нет, это не работает ..
@PavelMolchanov я хочу создать объект дочернего класса и одновременно напечатать имя отца и имя ребенка, используя метод «Имя» дочернего класса, вместо создания 2 объектов из 2 классов




Вы можете переопределить метод, который имеет возвращаемый тип void, как и любой другой метод, вы просто не можете использовать его возвращаемое значение super, поскольку у него его нет. Например.:
public class Children extends Father {
@Override
public void showName(String name) {
super.showName(name);
System.out.println("my name is: " + name);
}
}
Сказав это, это довольно сомнительный дизайн, и, вероятно, было бы более разумно иметь метод, который принимает этот параметр name и строит из него строку, оставляя фактическую печать вызывающей стороне.
Используйте
@overrideвышеpublic void showName(String name)в классеChildren.