方法重写
//重写都是方法的重写和属性无关
public class B{
public static void test(){
System.out.println("B=>test()");
}
}
public class A extends B{
public static void test(){
System.out.println("A=>test()")
}
}
public class Application{
//静态方法:方法的调用只和左边,定义的类有关
public static void main(String[] args){
A a=new A();
a.test();
//父类的引用指向子类
B b=new A();
b.test();
}
}
//输出结果
A=>test()
B=>test()
public class B{
public void test(){
System.out.println("B=>test()");
}
}
public class A extends B{
public void test(){
System.out.println("A=>test()")
}
}
public class Application{
//非静态:重写
public static void main(String[] args){
A a=new A();
a.test();
B b=new A();//子类重写了父类的方法
b.test();
}
}
/*
A=>test()
A=>test()
*/
Note
重写:需要有继承关系,子类重写了父类的方法!
- 方法名必须相同
- 参数列表必须相同
- 修饰符:范围可以扩大但不能缩小:public>protected>default>private
- 抛出异常:范围可以被缩小但不能扩大;
重写:子类与父类的方法必要一致
为什么要重写:
-
父类的功能,子类不一定需要,或者不一定满足!
Alt+Insert