方法重写
重写
-
需要有继承关系,子类只能重写父类的方法!
-
方法名必须相同
-
参数列表必须相同
-
修饰符:范围可以扩大但是不可以缩小 public >Protected>Default>private
-
抛出的异常:范围,可以被缩小但是不能被扩大:ClassNotFoundException --> Exception(大)
重写:子类的方法和父类必须一致:方法体不同
为什么需要重写:
-
父类的功能,子类并不一定都需要,或者不够满足
快捷键:Alt + Inser
=============================================================================
代码演示---父类B
package com.tea.Demo05;
//重写是方法的重写,与属性无关
public class B {
public void test(){
System.out.println("B=>test()");
}
}
// public static void test(){
// System.out.println("B=>test()");
// }
代码演示---子类A
package com.tea.Demo05;
//继承关系
public class A extends B{
//Override 重写
@Override
public void test() {
System.out.println("A=>test()");
}
}
// public static void test(){
// System.out.println("A=>test()");
// }
代码演示---测试类
package com.tea.Demo05;
public class Application {
//静态的方法与非静态的方法区别很大
//静态方法: 方法的调用只和左边,即定义的数据类型有关
//非静态方法: 才可以重写
public static void main(String[] args) {
//方法的调用只和左边,即定义的数据类型有关
A a = new A();
a.test(); //A=>test()
//父类的引用指向子类
B b = new A();
b.test(); //A=>test()
}
}
=============================================================================
重写的注意事项
1. 当A类与B类中是静态方法时,测试类的运行结果会表明
【静态方法: 方法的调用只和左边,即定义的数据类型有关】
2. 当A类与B类中是非静态方法时,测试类的运行结果会表明
【非静态方法可以重写】
=============================================================================
标签:静态方法,子类,test,重写,方法,public From: https://www.cnblogs.com/bobocha/p/16747594.html