java 中方法的重载和重写

1、方法的重载

概念:在同一个类中,方法名相同,参数列表(参数类型和参数个数)不同的方法称为方法重载;

和访问修饰符、返回值类型无关;

例如在dog类中定义两个eat()方法:

public class dog extends animal{
public void eat(){
System.out.println("我要吃骨头");
}
public void eat(int num){
System.out.println("我要吃"+num+"根骨头");
}
}

这是可以的在调用的时候根据调用参数列表的不同得到不同的调用结果:

d.eat();//调用无参数的方法
d.eat(3);//调用有参数的方法

结果:

我要吃骨头
我要吃3根骨头

作用:主要用于在调用同样的方法的时候,有的时候需要改变方法的内容,如果改了名字容易产生记忆混乱,最好用方法重载;

 

2、方法的重写

概念:子类和父类中,方法名称相同,参数列表相同,返回值相同的方法;

注意:子类重写的方法访问修饰符不能比上一级权限更小;

举例:在animal类和dog类中分别定义一个eat()方法;

animal中:

public void eat(){
System.out.println("我要吃饭");
}

dog类继承animal中:

public void eat(){
System.out.println("我要吃骨头");
}

测试:在调用中如果使用了向上转型,那么调用的方法是子类中的方法;

animal a=new animal();
animal ad=new dog();//向上转型
dog d=new dog();
a.eat();//调用animal方法

ad.eat();//会调用子类的重写方法;
d.eat();//调用子类重写方法

结果:

我要吃饭
我要吃骨头
我要吃骨头

作用:在子类继承的时候,把父类的共有方法都继承了,有的时候需要展现子类的独特性;需要方法的重写。

posted @ 2018-07-17 22:37  谁在逆水行舟  阅读(159)  评论(0编辑  收藏  举报