方法的重写
不多说,直接上代码
package com.xuyifan.oop.demo06; /** * @author xyf * @create 2020-08-14-16:29 */ public class Application { public static void main(String[] args) { //方法的调用只和左边定义的类型有关 A a=new A(); a.test(); //父类的调用指向了子类 B b=new A(); b.test(); B c=new B(); c.test(); } }
B类
package com.xuyifan.oop.demo06; /** * @author xyf * @create 2020-08-14-16:29 */ public class B { public void test(){ System.out.println("B"); } }
A类
package com.xuyifan.oop.demo06; /** * @author xyf * @create 2020-08-14-16:29 */ public class A extends B { String name; @Override //注解,编译器会检查,也方便自己以后看 public void test() { System.out.println("A"); } }
运行输出
A
A
B
重写需要有继承关系,只针对方法,而且是子类重写父类
注意
- 方法名必须相同,不同的只是方法体
- 参数列表必须相同,相同的返回值类型(虽然可以返回子类,但是不建议)
- 修饰符范围可以扩大,父类的private方法可以重写为public的子类方法
那么思考为什么需要重写
最简单的就是,儿子像父亲但不是父亲,父类的功能,子类不一定需要也不一定满足
浙公网安备 33010602011771号