文章转载自:https://blog.csdn.net/to_be_designer/article/details/47175689
方法的重写:
重写是针对于java中的继承特性的。子类继承父类,将会继承父类的所有属性和方法(除去private修饰的)。例如动物类中动物有叫的行为void voice(),而狗也有叫的行为,但是狗的叫是不同于动物的,因此狗类应该对动物类中的void voice()进行重写。
重写有以下规则:
1, 方法名称相同。
2, 返回值类型相同。
3, 参数列表相同。
4, 访问的修饰符修饰范围必须大于父类的修饰符的范围。
重写有以下规则:
1, 方法名称相同。
2, 返回值类型相同。
3, 参数列表相同。
4, 访问的修饰符修饰范围必须大于父类的修饰符的范围。
//父类
public class Animal//extends Object 默认继承Object.
{
public void voice (){
System.out.println( "动物叫!" );
}
}
//子类
public class Dog extends Animal {
//对父类中的voice方法可进行重写。
@Override //用来表示此方法是重写的标识符。
public void voice (){
System.out.println( "汪汪叫!" );
}
}
public class Animal//extends Object 默认继承Object.
{
public void voice (){
System.out.println( "动物叫!" );
}
}
//子类
public class Dog extends Animal {
//对父类中的voice方法可进行重写。
@Override //用来表示此方法是重写的标识符。
public void voice (){
System.out.println( "汪汪叫!" );
}
}
方法的重载:
在同一个类中,同一个方法可能要有不同的使用方式,这是要对方法进行重载。重载的规则是:
在同一个类中, 方法名称相同,参数列表不同(类型不同,参数数目不同),无关访问修饰符和返回值,对方法进行重载。
在同一个类中, 方法名称相同,参数列表不同(类型不同,参数数目不同),无关访问修饰符和返回值,对方法进行重载。
public
class Animal//extends Object 默认继承Object.
{
public void voice (){
System.out.println( "动物叫!" );
}
public void voice (String name ){
System.out.println( "看见" +name+ "就开始咬!" );
}
public void voice ( int age){
if (age< 18 )
System.out.println( "看见18岁以下的就摇尾巴!" );
}
}
{
public void voice (){
System.out.println( "动物叫!" );
}
public void voice (String name ){
System.out.println( "看见" +name+ "就开始咬!" );
}
public void voice ( int age){
if (age< 18 )
System.out.println( "看见18岁以下的就摇尾巴!" );
}
}