方法重写
public class B {
public void test(){//没有了static ,就只能用重写
System.out.println("B=>test()");
}
}
//重写都是方法的重写,和属性无关
public class A extends B{
//Override重写
@Override//注解,有功能的注释!alt键加insert键就能调用重写
public void test() {
System.out.println();//方法的定义与父类相同,实现不同
}
}
public class Application {
public static void main(String[] args){
//静态的方法和非静态的方法区别很大!
//静态方法://方法的调用只和左边定义的数据有关
//非静态:重写
A a=new A();
B b=new A();//父类的引用指向了子类
a.test();
b.test();//方法的调用只和左边定义的数据类型有关
}
}
运行结果:
A=>test()
A=>test()
总结:
重写:前提是需要有继承关系,子类继承父亲的方法
1.方法名必须相同
2.参数列表必须相同
3.修饰符:范围可以扩大,但不能缩小。public>Protected>Default>private
4.抛出的异常:范围可以被缩小,但不能扩大:ClassNotFoundException-->Exception(大)
5.子类的方法和父类的必须要一致,方法体不同
为什么需要重写,父类的功能,子类不一定需要,或者不一定满足!
alt+insert:选中Override;

浙公网安备 33010602011771号