java 抽象类使用@Autowrited注入对象,子类直接使用父类的该属性

1.情景展示

  如上图所示,每个服务层都需要注入这个工具类对象 

   

2.原因分析

  如果我们每个实现类都加上这样一行代码,实属麻烦;

  既然每个类都需要,那我们就可以把它视为公共属性,为了承载这个公共属性,我们就需要创建一个父类,在java中,父类通常是一个抽象类。

3.解决方案

  将公有属性放到父类中,接口实现类作为子类继承父类。

  这里需要说明的有两点:

  第一,抽象类也可以使用spring注解完成对象的注入;

  第二,通常我们在一个类中注入对象时,会将该属性私有化,也就是使用private修饰,这样一来该属性会变成类的私有属性,也就是该属性只能在该类中被调用;显然,用到这里不合适,因为我们需要它的子类也能访问得到该属性,所以使用protected修饰。

  子类使用继承该类后,就可以直接使用这个属性啦

  使用父类的另一个好处是:方便后期扩展公有属性和方法

4.测试

  对象czUrlUtils能够正常获取到。 

5.扩展

  对于几个个别的接口,仅仅依赖czUrlUtils对象工具类是不够的,比如还需要另外两个工具类

  我们可以把这两个抽出来再作为一个公共类的属性,将公共类作为父类,父类继承上面的那个父类

  该实现类继承新生成的父类。 

   

写在最后

  哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

 相关推荐:

 

posted @ 2020-11-10 10:48  Marydon  阅读(3637)  评论(0编辑  收藏  举报