重载、重写

重写: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、重载出来的方法可以任意修改访问权限(相当于新写的一个方法)

原文地址:https://www.cnblogs.com/OSKnown/p/8675096.html