package Demo.oop.APP.Demo04; //启动器 public class application { public static void main(String[] args) { //方法的调用只和左边,定义的数据有关 A a=new A(); a.test(); //父类的引用指向了子类 B b=new B(); b.test(); //由上面得,使用静态方法时候,并没有重写 A a1=new A(); a.test1(); B b1=new B();//子类重写了父类得方法 b.test1(); } }
package Demo.oop.APP.Demo04; //继承 public class A extends B{ public static void test(){ System.out.println("A=>test()"); } //override重写 public void test1(){ System.out.println("A=>test()"); } }
package Demo.oop.APP.Demo04; //继承 public class A extends B{ public static void test(){ System.out.println("A=>test()"); } //override重写 public void test1(){ System.out.println("A=>test()"); } }
重写:需要继承,子类重写父类的方法
1.方法名必须相同
2.参数列表必须相同
3.修饰符范围可以扩大不能缩小,public>protected>default>private
4.抛出异常范围可以缩小,不可以扩大ClassNotFoundException-->Exception(大)
重写子类的方法名和父类的必须相同,方法体不同(重写了)
为什么需要重写
父类的方法,子类不一定需要,或者不一定满足
Alt+Insert:override
main方法里面test是没有被重写子类的输出,test1是被重写后的输出