Rumah > Java > javaTutorial > java中方法的重写与重载的区别

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

伊谢尔伦
Lepaskan: 2016-11-21 15:02:50
asal
1484 orang telah melayarinya

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

  方法重写使用注意事项:
  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();
         }
}
Salin selepas log masuk

编译就报错了,如图:

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();
         }
}
Salin selepas log masuk

运行成功

2027.jpg

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan