AB都是用static关键字修饰,这里就是A类继承B类的方法,然后通过在main方法里进行调用,然后对方法进行重写
//这里的代码值得注意的地方就是,new操作,在我们平常使用的new操作的时候,一般是用 类名 对象名=new 类名();这样的形式,但是在此处却变成了b的类名 对象名=new a类名();这样的操作
他其中的原理是,ab是继承关系,他们相互之间可以进行相互引用类,也就是,爸爸可以用儿子的钱,儿子可以用爸爸的钱,
所以最后调用两个类中的方法,输出的结果不同
这里是用idea中的快捷键 alt+insert,就会有一个overrid method的东西,就会自动生成上述的重写方法,看图片,他自动生成了前面父类的方法,并且还加了个super来承接父类方法,但是我们可以不用之前父类的东西,我们可以将super.test();这句话删了,然后生成我们自己需要的语句,比如生成sout
但是我们改成sout重写自己的方法后,看图却发现编译器最后返回的结果确是父类方法里面的东西,和第一张图里面的结果不一样了,注意看就可以知道,图一是调用了静态方法,,二这里却是啥都没有调用,非静态方法,继承的时候有问题
//非静态的方法可以重写,并且重写的方法只能是public修饰声明的,不能是private的,否者会报错
只有在子父类中才有重写
总结