方法重写
重写:需要有继承关系,子类重写父类的方法
- 方法名必须相同
- 参数列表必须相同
- 修饰符,范围可扩大但不能缩小 public>protected>default>private
- 抛出的异常:范围可缩小不能扩大
重写的意义:
- 父类的功能子类不一定需要或不一定满足需求
//主程序中
public class Application {
static void main(String[] args) {
A a1 = new A();
a1.test1();
B b1 = new A();
b1.test1();
//二者都是静态方法,静态方法是类的方法,与类一起加载
//因此a1、b1方法的调用由左边定义的类型决定
//静态方法无法被重写
A a2 = new A();
a2.test2();
B b2 = new A();
b2.test2();
//二者都是非静态方法,非静态方法是对象的方法
//因此a2、b2方法的调用由右边的对象决定
}
}
//父类中
public class B {
public static void test1(){
System.out.println("B1");
}
public void test2(){
System.out.println("B1");
}
}
//子类中
public class A extends B{
public static void test1(){
System.out.println("A1");
}
public void test2(){
System.out.println("A2");
}
}
无法重写的方法:
- static方法
- final 常量
- private修饰的方法

浙公网安备 33010602011771号