Java多态特性:重载和覆写的比较
Java重载:
- 在同一个类中
- 方法具有相同的名字,相同或不同的返回值,但参数不同的多个方法(参数个数或参数类型)
- public class MethoDemo{
- public static void main(String args[]){
- int one = add(10,20) ; // 调用整型的加法操作
- float two = add(10.3f,13.3f) ; // 调用浮点数的加法操作
- int three = add(10,20,30) ; // 调用有三个参数的加法操作
- System.out.println("add(int x,int y)的计算结果:" + one) ;
- System.out.println("add(float x,float y)的计算结果:" + two) ;
- System.out.println("add(int x,int y,int z)的计算结果:" + three) ;
- }
- // 定义方法,完成两个数字的相加操作,方法返回一个int型数据
- public static int add(int x,int y){
- int temp = 0 ; // 方法中的参数,是局部变量
- temp = x + y ; // 执行加法计算
- return temp ; // 返回计算结果
- }
- public static int add(int x,int y,int z){
- int temp = 0 ; // 方法中的参数,是局部变量
- temp = x + y + z ; // 执行加法计算
- return temp ; // 返回计算结果
- }
- // 定义方法,完成两个数字的相加操作,方法的返回值是一个float型数据
- public static float add(float x,float y){
- float temp = 0 ; // 方法中的参数,是局部变量
- temp = x + y ; // 执行加法操作
- return temp ; // 返回计算结果
- }
- };
输出结果:
add(int x,int y)的计算结果:30
add(float x,float y)的计算结果:60
add(int x,int y,int z)的计算结果:23.6
Java覆写:
- 子类覆写父类的方法,在不同的类中
- 重写方法必须和被重写方法具有相同方法名称、参数列表和返回类型
- 重写方法不能使用比被重写方法更严格的访问权限
- class Person{ // 定义父类
- void print(){ // 默认的访问权限
- System.out.println("Person --> void print()。") ;
- }
- };
- class Student extends Person{ // 定义继承关系
- public void print(){
- System.out.println("Student --> void print()。") ;
- }
- };
- public class OverrideDemo{
- public static void main(String args[]){
- Student s = new Student() ;
- s.print() ;
- }
- };
输出结果:
Student --> void print()。

浙公网安备 33010602011771号