package Demo.oop.APP.Demo04;
//启动器
public class application {
public static void main(String[] args) {
//方法的调用只和左边,定义的数据有关
A a=new A();
a.test();
//父类的引用指向了子类
B b=new B();
b.test();
//由上面得,使用静态方法时候,并没有重写
A a1=new A();
a.test1();
B b1=new B();//子类重写了父类得方法
b.test1();
}
}
package Demo.oop.APP.Demo04;
//继承
public class A extends B{
public static void test(){
System.out.println("A=>test()");
}
//override重写
public void test1(){
System.out.println("A=>test()");
}
}
package Demo.oop.APP.Demo04;
//继承
public class A extends B{
public static void test(){
System.out.println("A=>test()");
}
//override重写
public void test1(){
System.out.println("A=>test()");
}
}
重写:需要继承,子类重写父类的方法
1.方法名必须相同
2.参数列表必须相同
3.修饰符范围可以扩大不能缩小,public>protected>default>private
4.抛出异常范围可以缩小,不可以扩大ClassNotFoundException-->Exception(大)
重写子类的方法名和父类的必须相同,方法体不同(重写了)
为什么需要重写
父类的方法,子类不一定需要,或者不一定满足
Alt+Insert:override
main方法里面test是没有被重写子类的输出,test1是被重写后的输出