方法的重写
重写:需要有继承关系,子类重写父类的方法。发生在两个类之间。
静态方法:类的方法
非静态方法:对象的方法
1.方法名和参数列表必须相同。
2.修饰符范围可以扩大。public>protected>default>private
3.抛出的异常范围可以被缩小,不能被扩大。ClassNotFoundException---->Exception(大)
“两同一小一大”
为什么需要重写?
1.父类的功能,子类不一定需要,或者不一定满足
eg:
package com.oop.DemoFour;
public class DemoB {
public void test(){
System.out.println("B->test()");
}
}
package com.oop.DemoFour;
public class DemoA extends DemoB{
public void test(){
System.out.println("A->test()");
}
}
package com.oop.DemoTwo;
import com.oop.DemoFour.DemoA;
import com.oop.DemoFour.DemoB;
import com.oop.DemoThree.Student;
//一个项目应该只存在一个main方法
public class Application {
public static void main(String[] args) {
//静态方法:方法的调用只和等号左边定义的类型有关
//非静态:子类重写了父类的方法
DemoA demoA = new DemoA();
demoA.test();//A->test()
//父类的引用指向了子类
DemoB demoB = new DemoA();//子类重写了父类的方法
demoB.test();//A->test()
}
}