Spring容器优先调用子类的方法
将一个类放入Spring容器中,获取该bean并执行其方法,当该类中和父类都实现了该方法时,优先调用子类中的方法,如果子类没有重写父类中的方法,则调用父类中的该方法。
1.创建一个接口:
1
2
3
4
5public interface HahaService {
void sayHi1();
void sayHi2();
}2.创建抽象类,并在其中实现这两个抽象方法:
1
2
3
4
5
6
7
8
9
10
11public abstract class AbstractHahaService implements HahaService {
public void sayHi1() {
System.out.println("抽象类中执行方法1!");
}
public void sayHi2() {
System.out.println("抽象类中执行方法2!");
}
}3.创建实现类,在其中重写一个方法,并将其注入Spring容器中:
1
2
3
4
5
6
7
public class HahaServiceImpl extends AbstractHahaService{
public void sayHi1() {
System.out.println("实现类中执行方法1!");
}
}4.根据接口名HahaService获取Spring中的bean对象,执行这两个方法,可以发现sayHi1方法优先执行了子类中的方法,而sayHi2方法执行了父类中的方法:
1
2实现类中执行方法1!
抽象类中执行方法2!