先说结论:
静态方法是类的方法。非静态方法是对象的方法。
所以静态的static test方法只看类的,所以Person p是用了Person类的static test方法
而非静态的test方法,由于p是Stuent new出来的,所以是作为Student的对象用了重写test方法
static的方法无法重写
其实用子类去构造父类的目的就是用子类去重写父类的方法。
重写的条件:
- 方法名必须相同
- 参数列表必须相同
- 修饰符:范围只能相等或扩大
- 异常:范围只能相等或缩小
为什么要重写:
子类可能不需要父类的方法,或者父类的方法不满足子类的需要
package Override;
//重写都是方法的重写 和属性无关
public class Person {
//注意 这里是不是static 想重写就要保持两边一致
//这里主要是要说 static的方法无法重写
public static void staticTest(){
System.out.println