首页 >Java >java教程 >java中方法的重写与重载的区别

java中方法的重写与重载的区别

伊谢尔伦
伊谢尔伦原创
2016-11-21 15:02:501486浏览

重载: 方法名相同,但是参数必须有区别(参数不同可以使类型不同,顺序不同,个数不同)。重写(又叫覆盖): 子类继承父类的方法,并重新实现该方法。

  方法重写使用注意事项:
  1.方法重写时,必须存在继承关系
  2.方法重写时,方法名和形式参数必须一致。
  3.方法重写时 ,子类的权限修饰符需要大于或等于父类的权限修饰符。
  4.方法重写时 ,子类的返回值类型必须小于或等于父类的返回值类型
  5.方法重写时 , 子类的异常类型要小于等于父类的异常类型。

在这里面主要拿第三点来测试:

public  class a{
         public static class People
         {
            public void fun(){};
         }
        static class Student extends People
         {
             protected void fun(){
              System.out.println("dfdfd");
             }
         }
   public static void main(String[] args){
        Student p = new Student();
         p.fun();
         }
}

编译就报错了,如图:

2025.jpg

原因是父类的方法的权限是public ,而子类改为protected,降低了权限,所以只能大于或等于如:    

public  class a{
         public static class People
         {
            protected void fun(){};
         }
        static class Student extends People
         {
             public void fun(){
              System.out.println("dfdfd");
             }
         }
   public static void main(String[] args){
        Student p = new Student();
         p.fun();
         }
}

运行成功

2027.jpg

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn