我想知道如何覆盖超类的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方法?
答案 0 :(得分:2)
您可以像其他任何方法一样覆盖具有返回类型void
的方法,只是不能使用其上级的返回值,因为它没有返回值。例如:
public class Children extends Father {
@Override
public void showName(String name) {
super.showName(name);
System.out.println("my name is: " + name);
}
}
已经说过,这是一个非常值得商design的设计,并且拥有一个采用该name
参数并从中构造一个字符串,然后将实际打印留给调用者的方法可能更有意义。 / p>