在spring的设计中 上层HttpServletBean的init 方法中会调用 子类FrameworkServlet 的方法 initServletBean 方法 涉及到的就是父类只想子类的方法
父类方法
package com.baiwang.UtilsTest.fatherinvokSon;
public class Animal {
public void fatherSpeak() {
System.out.println("===> this is father speak");
testSonSpeak();
}
public void testSonSpeak() {
System.out.println("===> this is father speak!!!");
}
}
子类方法
package com.baiwang.UtilsTest.fatherinvokSon;
public class Dog extends Animal {
public void testSonSpeak() {
System.out.println("===> this is son speak!!!===>");
}
public static void main(String[] args) {
Dog dog = new Dog();
dog.fatherSpeak();
}
}
执行结果
===> this is father speak
===> this is son speak!!!===>
一、父类引用指向子类对象时
1、若子类覆盖了某方法,则父类引用调用子类重新定义的新方法
2、若子类未覆盖某方法,则父类引用调用父类本身的旧方法
3、若子类覆盖了某属性,但父类引用仍调用父类本身的旧属性
4、若子类未覆盖某属性,则父类引用调用父类本身的旧属性
5、父类引用不能访问子类新定义的方法
二、子类引用指向自身对象时
1、若子类覆盖了某方法,则子类引用调用子类重新定义的新方法
2、若子类未覆盖某方法,则子类引用调用父类本身的旧方法
3、若子类覆盖了某属性,则子类引用调用子类重新定义的新属性
4、若子类未覆盖某属性,则子类引用调用父类本身的旧属性
5、子类引用可以访问子类新定义的方法
参考链接
https://www.cnblogs.com/Yxxxxx/p/6853672.html