重载重写

Posted 一字节

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重载重写相关的知识,希望对你有一定的参考价值。

重写:1、在同一个包中,父类的private和final的方法不能被子类重写

           2、不在同一个包,则只能重写非final的protected和public父类的方法

           3、对同一个东西进行重新写,所以必须同名同参同返回值类型

     4、重写出来的方法的访问权限不能比父类低(依赖于父类的访问权限)

 1     static class Animal{
 2         //父类方法定义为static,则子类不可以重写,除非也定义为static
 3         public static void move(){
 4             System.out.println("动物可以行走");
 5         }
 6     }
 7     static class Dog extends Animal{
 8         public static void move(){
 9             System.out.println("狗会跑");
10         }
11         public void bark(){
12             System.out.println("狗会叫");
13         }
14     }

  当在子类中要调用父类的方法时,可以用super关键字或者new一个父类对象

    1、如果用super关键字,则父类的方法不能被定义为static,否则无法调用

    2、new一个父类对象就不存在这个问题了,是完全可以调用的

    注意:子类也可以直接super(xx,xx); 默认调用的是父类的构造函数

重载:

  1、必须是同名不同参,返回类型可相同可不相同(无所谓)

  2、参数列表顺序不同也是重载

  3、重载出来的方法可以任意修改访问权限(相当于新写的一个方法)

 

以上是关于重载重写的主要内容,如果未能解决你的问题,请参考以下文章

Unity中的重载和重写

方法重载和重写的区别

Java中重载(Overload)和重写(Override)的定义

重写和重载

重载与重写的区别

重载和重写方法中的多态性