java面向对象09:方法的重写
方法的重写
package com.oop;import com.oop.demo05.B;
import com.oop.demo05.A;import java.util.Scanner;public class Application {//静态方法和非静态方法区别很大//没有static,a调用的是对象的方法,而a是用B类new的//有static,a调用了A类的方法,因为a是用A类定义的//静态方法:方法的调用只和左边,定义的数据类型有关public static void main(String[] args) {//方法的调用只和左边,定义的数据类型B b=new B();b.test();//父类的引用指向子类A a=new B();a.test();}
}
package com.oop.demo05;
//重写都是方法的重写,和属性无关
public class A {public static void test(){System.out.println("A=>test()");}
}
package com.oop.demo05;public class B extends A {public static void test() {System.out.println("B=>test()");}
}
package com.oop.demo05;
//重写都是方法的重写,和属性无关
public class A {public void test(){System.out.println("A=>test()");}
}
package com.oop.demo05;public class B extends A {@Override//注解public void test() {System.out.println("B=>test()");}
}
重写:需要有继承关系,子类重写父类的方法
1.方法名必须相同
2.参数列表必须相同
3.修饰符:范围可以扩大:public>protected>Default>private
4.抛出的异常:范围可以被缩小,但不能扩大
重写,子类的方法和父类的方法必须一致;方法体不同!
为什么需要重写:
父类的功能,子类不一定需要,或者不一定满足!
Alt+Insert;override;