Java多态特性:重载和覆写的比较

Java重载:

 

  • 在同一个类中
  • 方法具有相同的名字,相同或不同的返回值,但参数不同的多个方法(参数个数或参数类型)

 

 

[java] view plain copy
 
  1. public class MethoDemo{  
  2.     public static void main(String args[]){  
  3.         int one = add(10,20) ;      // 调用整型的加法操作  
  4.         float two = add(10.3f,13.3f) ;  // 调用浮点数的加法操作  
  5.         int three = add(10,20,30) ; // 调用有三个参数的加法操作  
  6.         System.out.println("add(int x,int y)的计算结果:" + one) ;  
  7.         System.out.println("add(float x,float y)的计算结果:" + two) ;  
  8.         System.out.println("add(int x,int y,int z)的计算结果:" + three) ;  
  9.     }  
  10.     // 定义方法,完成两个数字的相加操作,方法返回一个int型数据  
  11.     public static int add(int x,int y){  
  12.         int temp = 0 ;          // 方法中的参数,是局部变量  
  13.         temp = x + y ;          // 执行加法计算  
  14.         return temp ;           // 返回计算结果  
  15.     }  
  16.     public static int add(int x,int y,int z){  
  17.         int temp = 0 ;          // 方法中的参数,是局部变量  
  18.         temp = x + y + z ;          // 执行加法计算  
  19.         return temp ;           // 返回计算结果  
  20.     }  
  21.     // 定义方法,完成两个数字的相加操作,方法的返回值是一个float型数据  
  22.     public static float add(float x,float y){  
  23.         float temp = 0 ;        // 方法中的参数,是局部变量  
  24.         temp = x + y ;          // 执行加法操作  
  25.         return temp ;           // 返回计算结果  
  26.     }  
  27. };  

输出结果:

 

add(int x,int y)的计算结果:30

add(float x,float y)的计算结果:60

add(int x,int y,int z)的计算结果:23.6

 

Java覆写:

 

  • 子类覆写父类的方法,在不同的类中
  • 重写方法必须和被重写方法具有相同方法名称、参数列表和返回类型
  • 重写方法不能使用比被重写方法更严格的访问权限

 

 

[java] view plain copy
 
  1. class Person{       // 定义父类  
  2.     void print(){   // 默认的访问权限  
  3.         System.out.println("Person --> void print()。") ;  
  4.     }  
  5. };  
  6. class Student extends Person{   // 定义继承关系  
  7.     public void print(){  
  8.         System.out.println("Student --> void print()。") ;  
  9.     }  
  10. };  
  11. public class OverrideDemo{  
  12.     public static void main(String args[]){  
  13.         Student s = new Student() ;  
  14.         s.print() ;  
  15.     }  
  16. };  

输出结果:

 

Student --> void print()。

 

小结:

java的三大特性:封装,继承,多态.而方法的重载和覆写正是多态的体现.

posted @ 2016-12-30 14:32  天涯海角路  阅读(165)  评论(0)    收藏  举报