Java关于方法重写的学习笔记
方法重写:
1.静态方法和非静态的方法差别很大
2.去掉static,静态变动态 (静态属于类,非静态属于对象)
方法的重写实际上就是方法的覆盖(弹幕说的)
3.方法名必须相同
4.参数列表也必须相同
5.修饰符:范围可以扩大,但不能缩小:public>protested>default>private
6.抛出的异常:范围,可以被缩小但不能放大
子类的方法和父类一致,方法体不同!!!!
为什么需要重写?
子类不一定需要,或者不一定满足!
Alt+insert;override
package src.TEST.primary.Class;
//方法重写
//重写都是方法的重写,和属性无关
public class A {
public void test( ){
System.out.println("the test of A");
}
}
package src.TEST.primary.Class;
public class B extends A{
public void test( ){
System.out.println("the test of B");
}
}
此时子类觉得父类的test不适合自己所需要的,然后就自己把方法有重写了一遍
package src.TEST.primary.Class;
public class demo {
public static void main(String[] args) {
//方法的调用只与左边,定义的数据有关
A a=new B();//父类的引用指向了子类
a.test();
B b=new B();
b.test();
A c=new A();
c.test();
// B d=new A();错误表达,父类里面找不到子类的A
}
}
最后运行结果
the test of B
the test of B
the test of A
进程已结束,退出代码0