Struts2 拦截器的Interceptor接口与AbstractInterceptor抽象类

Struts2 拦截器的Interceptor接口与AbstractInterceptor抽象类在学习Struts2框架的时候,遇到了拦截器,一开始拦截器都应该之间或者间接去实现Interceptor接口的,但是后来看到了AbstractInterceptor这个抽象类。之前学过的JAVA知识有点忘记了,所以特意查了一下关于抽象类和接口之间的关系。我们不想使用Interceptor接口去实现拦截器对象,是因为这个接口中有3个方法,但是我们在实际上我们主要用到的就是只有intercept()这

大家好,又见面了,我是你们的朋友全栈君。

在学习Struts2框架的时候,遇到了拦截器,一开始拦截器都应该之间或者间接去实现Interceptor接口的,但是后来看到了AbstractInterceptor这个抽象类。之前学过的JAVA知识有点忘记了,所以特意查了一下关于抽象类和接口之间的关系。我们不想使用Interceptor接口去实现拦截器对象,是因为这个接口中有3个方法,但是我们在实际上我们主要用到的就是只有intercept()这个方法。我们不想也对其他两个的方法也进行空的实现的话,这样子我们就让拦截器继承AbstractInterceptor这个抽象类。当我们继承这个抽象类的时候,我们就只需重写intercept()这个方法就可以了。

下面就是一些参考别人的资料,关于抽象类与接口的关系,应该改是抽象类它实现了Interceptor接口中的destroy()以及init()方法,然后放拦截器继承这个抽象类的时候,就只需要实现抽象类中没有实现的方法就可以了,这里抽象类没有实现的方法是intercept()。所以在创建拦截器的时候我们就只需要继承这个AbstractInterceptor抽象类就可以了。

抽象类和接口都是Java中用来实现多态的方法,在此主要说明为什么会用抽象类来实现接口,因此对两者之间的异同就不介绍了。

在java一般的用法中,如果要用普通类来实现接口,则必须实现该接口中的所有方法,这样就会导致需要实现多余的方法;

采用抽象类来实现方法,可以实现该接口中的部分方法,而且当其他类继承该抽象类时,只需要实现抽象类中未实现的方法即可。

例:

    抽象类只实现了接口A中的方法a、b,当类C继承类B时,只需要实现B中为实现的接口c即可。

   一般情况下,类C中的方法a、b都是调用父类B的方法a、b

[cpp] 
view plain  
copy

 
在CODE上查看代码片
派生到我的代码片

  1.   /** 
  2.    *接口 
  3.    */  
  4.   interface A{  
  5.          public void a();  
  6.          public void b();  
  7.          public void c();  
  8.   }  
  9.   
  10.  /** 
  11.   *抽象类 
  12.   */      
  13.  abstract class B implements A{  
  14.          public void a(){}  
  15.          public void b(){}  
  16.  }  
  17.    
  18.  /** 
  19.    * 具体实现类 
  20.    */  
  21.   public class C extends B{  
  22.          public void c(){}     
  23. }  
Struts2 拦截器的Interceptor接口与AbstractInterceptor抽象类


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/146454.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Word2vec负采样

    Word2vec负采样下文中的模型都是以Skip-gram模型为主。1、论文发展word2vec中的负采样(NEG)最初由Mikolov在论文《DistributedRepresentationsofWordsandPhrasesandtheirCompositionality》中首次提出来,是Noise-ContrastiveEstimation(简写NCE,噪声对比估计)的简化版本…

    2022年6月20日
    44
  • java中System.getProperty()方法详解

    java中System.getProperty()方法详解System.out.println("java版本号:"+System.getProperty("java.version"));//java版本号

    2022年7月4日
    25
  • 调查显示:消费者不信任采用新域名后缀的网站

    调查显示:消费者不信任采用新域名后缀的网站

    2022年3月4日
    43
  • 2 NICs on same subnet

    2 NICs on same subnet

    2021年8月12日
    67
  • 菜鸟实战UML——活动图

    菜鸟实战UML——活动图活动图活动图(activitydiagram)是阐明了业务用例实现的工作流程。业务工作流程说明了业务为向所服务的业务主角提供其所需要的价值而必须完成的工作,业务用例由一系列活动组成,他们共同为业务主角生成某些工件。工作流程通常包括一个基本的工作流程和一个或多个备选工作流程。工作流程的结构使用活动图来进行说明。用途活动图是UML用于对系统的动态行为建模的另一种常用工具,它描述活动的顺序,展现…

    2022年6月7日
    33
  • Mac卸载JDK「建议收藏」

    Mac卸载JDK「建议收藏」在开发中可能需要用到某些版本的JDK,而系统中可能存在一些其它版本,此时可以切换到需要的版本,也可以删除掉不需要的版本,若想删除某个版本的JDK,请按如下操作:1、调出终端窗口,依次输入如下命令:sudorm-fr/Library/Internet\Plug-Ins/JavaAppletPlugin.pluginsudorm-fr/Library/PreferencesP

    2022年6月25日
    165

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号