Java零基础-方法的重载与覆盖
方法语法结构:
[修饰符列表] 返回值类型 方法名(参数列表){
方法体;
}
例:
1 public static void main(String[] args){ 2 System.out.println("HelloWorld"); 3 }
注:修饰符列表不是必须的。
方法的重载/Overload
方法重载又被称为:overload。如果多个方法的功能相似,则可以考虑使用方法重载。
在同一个类中,方法名相同,参数列表不同(参数数量不同、参数顺序不同、参数类型不同),则构成方法重载。
方法重载与方法的返回值无关。
例:
1 public class OverloadTest{ 2 //以下两个方法构成重载 3 public static void m1(){} 4 public static void m1(int a){} 5 6 //以下两个方法构成重载 7 public static void m2(int a,double b){} 8 public static void m2(double a,int b){} 9 10 //以下两个方法构成重载 11 public static void m3(int x){} 12 public static void m3(double x){} 13 14 //以下两个方法不构成重载,而是方法重复 15 //public static void m4(int x,int y){} 16 //public static void m4(int y,int y){} 17 18 //以下两个方法不构成重载 19 /*public static void m5(int x){} 20 public static int m5(int x){ 21 return 1; 22 }*/ 23 }
方法的覆盖/Override
方法覆盖又被称为方法重写。当父类中的方法已经无法满足当前子类的需要,子类有必要将父类中继承过来的方法重新编写,这个重新编写的过程称为方法的重写/覆盖。
构成方法重写的条件为:
方法重写发生在具有父子关系的父子类之间,重写的方法返回值类型相同,方法名相同,型参列表相同;
方法重写的时候,访问权限不能更低,可以更高。如:父类中方法为public,则子类中重写的方法不能为private;父类中方法为protected,则子类中重写的方法可以为public;
方法重写的时候,抛出的异常不能更多,只能更少。
例:
1 public class Animal{ 2 public void move(){ 3 System.out.println("动物在移动"); 4 } 5 }
1 public class Cat extends Animal(){ 2 public void move(){ 3 System.out.println("猫在爬树。"); 4 } 5 }
1 public class Bird extends Animal(){ 2 public void move(){ 3 System.out.println("鸟儿在飞翔。"); 4 } 5 }
注意:
私有方法不能继承,所以不能覆盖;构造方法不能继承,所以不能覆盖;静态方法不存在覆盖。
覆盖只针对方法,不针对属性。
世界旋转着我们的生命,一天一天的接近死亡。
posted on 2021-02-22 21:50 AnYeYiYang 阅读(99) 评论(0) 编辑 收藏 举报