java  interface 接口的使用好处分析

 更新时间:2019年11月26日 11:28:14   作者:倾听岁月  
这篇文章主要介绍了java interface 接口的使用好处,结合实例形式分析了java interface接口的功能、基本使用方法及多态性的使用优点,需要的朋友可以参考下

本文实例讲述了java  interface 接口的使用优点。分享给大家供大家参考,具体如下:

接口interface 的作用是什么?

假设在以前我们开发了某个业务的实现类Demo1,现在根据需求我们需要重新设计该业务的实现类Demo2且不能影响其它业务的运行。

这时候就需要一个标准,一个针对该业务实现的一个标准接口(standard interface)。而所有实现该接口(interface)的类都需要去实现该接口的方法。通过java向上转型实现针对不同的业务有不同类的实现。

注释:

1、interface 只有方法名和返回值,没有方法体,都是抽象方法。切不能直接实例化(通过他的实现类向上转型获得该接口的实现)。

Test.java

package Test;
public interface Test
{
  //定义了一个接口方法
  public String getTestText();
}

Test1.java

package Test;
public class Test1 implements Test
{
  @Override
  public String getTestText()
  {
    return "this class name is test1"; 
  }
}

Test2.java

package Test;
public class Test2 implements Test
{
  @Override
  public String getTestText()
  {
    return "this class name test2";
  }
}

Index.java

import Test.Test;
public class Index
{
  public static void main(String[] args)
    throws Exception
  {
    Test test1 = testIndex("Test.Test1");
    System.out.println(test1.getTestText());
    Test test2 = testIndex("Test.Test2");
    System.out.println(test2.getTestText());
  }
  public static Test testIndex(String classPath)
  {
    Test test = (Test)Class.forName(classPath).newInstance();
    return test;
  }
}

至此,你看出这样用的好处了吗?Test1和Test2都实现了接口Test 如果以后要更改Test的实现或者是针对不同业务有不同的Test实现,我们都可以动态的载入针对Test不同的实现类。

接口与接口之间是可以继承的

Demo1.java

package Demo;
public interface Demo1
{
  public String getName();
}

Demo2.java

package Demo;
public interface Demo2 extends Demo1
{
  public String getAge();
}

Demo3.java 继承Demo2 需要实现Demo1和Demo2中的接口方法

package Demo;
public class Demo3
{
  @Override
  public String getName()
  {
    return "my name is Mr.tan";
  }
  @Override
  public String getAge()
  {
    return "my age is 22";
  }
}

其实本质就是一个类的多钟表现形态(多态)。针对不同的业务,相同的接口或者是类通过不同的实现类向上转型表现出不同的形态。

更多java相关内容感兴趣的读者可查看本站专题:《Java面向对象程序设计入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总

希望本文所述对大家java程序设计有所帮助。

相关文章

  • Java常用类之比较器的使用详解

    Java常用类之比较器的使用详解

    这篇文章主要为大家详细介绍了Java中比较器的相关资料,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2022-11-11
  • Mybatis配置解析看这一篇就够了

    Mybatis配置解析看这一篇就够了

    这篇文章主要介绍了详解Mybatis是如何解析配置文件的,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-07-07
  • Maven项目打包成可执行Jar文件步骤解析

    Maven项目打包成可执行Jar文件步骤解析

    这篇文章主要介绍了Maven项目如何打包成可执行Jar文件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • Spring Boot集成Redis实现缓存机制(从零开始学Spring Boot)

    Spring Boot集成Redis实现缓存机制(从零开始学Spring Boot)

    这篇文章主要介绍了Spring Boot集成Redis实现缓存机制(从零开始学Spring Boot),需要的朋友可以参考下
    2017-04-04
  • 解决java.lang.IllegalArgumentException异常问题

    解决java.lang.IllegalArgumentException异常问题

    这篇文章主要介绍了解决java.lang.IllegalArgumentException异常问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • 解析Java按值传递还是按引用传递

    解析Java按值传递还是按引用传递

    这篇文章主要介绍了解析Java按值传递还是按引用传递,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • 求1000阶乘的结果末尾有多少个0

    求1000阶乘的结果末尾有多少个0

    题目是:求1000!的结果末尾有多少个0,解题思路:两个素数2、5,相乘即可得到10,我们可以认为,有多少组2、5,结尾就有多少个0,下面是代码,需要的朋友可以参考下
    2014-02-02
  • 详解SpringCloud新一代网关Gateway

    详解SpringCloud新一代网关Gateway

    SpringCloud Gateway是Spring Cloud的一个全新项目,Spring 5.0+ Spring Boot 2.0和Project Reactor等技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的API路由管理方式
    2021-06-06
  • Java实现Treap树的示例代码

    Java实现Treap树的示例代码

    本文主要介绍了Java实现Treap树的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • Java常见的转义字符举例详解

    Java常见的转义字符举例详解

    在java字符常量中,反斜杠(\)是一个特殊的字符,被称为转义字符,它的作用是用来转义后面一个字符,这篇文章主要给大吉介绍了关于Java常见转义字符的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-02-02

最新评论