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


    重载: 方法名相同,但是参数必须有区别(参数不同可以使类型不同,顺序不同,个数不同)。
    前提:
     同一个类中,方法名相同,参数列表不同的2个或多个方法构成方法的重载 
    
    参数列表不同指参数的类型,参数的个数,参数的顺序至少一项不同
    方法的返回值类型,方法的修饰符可以不同。
    重写(又叫覆盖): 子类继承父类的方法,并重新实现该方法。

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

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

     1 public  class a{
     2          public static class People
     3          {
     4             public void fun(){};
     5          }
     6         static class Student extends People
     7          {
     8              protected void fun(){
     9               System.out.println("dfdfd");
    10              }
    11          }
    12    public static void main(String[] args){
    13         Student p = new Student();
    14          p.fun();
    15          }
    16 }

    编译就报错了,如图:

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

     1 public  class a{
     2          public static class People
     3          {
     4             protected void fun(){};
     5          }
     6         static class Student extends People
     7          {
     8              public void fun(){
     9               System.out.println("dfdfd");
    10              }
    11          }
    12    public static void main(String[] args){
    13         Student p = new Student();
    14          p.fun();
    15          }
    16 }

    运行成功,如图:

  • 相关阅读:
    UML中的构件图
    Extjs4 中的gird
    【转载】C#实现线程安全的网络流
    [转载]组播
    【转载】wcf综合运用之:大文件异步断点续传
    【转载】WCF热门问题编程示例(4):WCF客户端如何异步调用WCF服务?
    【转载】特殊用途的IP地址介绍
    [转载]C# HashTable
    c宏定义实战
    c异或加密与解密
  • 原文地址:https://www.cnblogs.com/qq1871707128/p/6085323.html
Copyright © 2020-2023  润新知