java  interface 接口的使用好处分析

所属分类: 软件编程 / java 阅读数: 35
收藏 0 赞 0 分享

本文实例讲述了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 中maven pom.xml文件教程详解

这篇文章主要介绍了java 中maven pom.xml文件教程详解,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

spring boot整合netty的实现方法

这篇文章主要介绍了spring boot整合netty的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

Netty与Spring Boot的整合实现

这篇文章主要介绍了Netty与Spring Boot的整合的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

Spring动态加载bean后调用实现方法解析

这篇文章主要介绍了Spring动态加载bean后调用实现方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
收藏 0 赞 0 分享

java实现画图板上画一条直线

这篇文章主要为大家详细介绍了java实现画图板上画一条直线,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Java通过python命令执行DataX任务的实例

今天小编就为大家分享一篇Java通过python命令执行DataX任务的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
收藏 0 赞 0 分享

springBoot集成redis的key,value序列化的相关问题

这篇文章主要介绍了springBoot集成redis的key,value序列化的相关问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

java实现登录案例

这篇文章主要为大家详细介绍了java实现登录案例的相关代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

java解决请求跨域的两种方法

这篇文章主要为大家详细介绍了java解决请求跨域的两种方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

SpringBoot集成Beetl后统一处理页面异常的方法

这篇文章主要介绍了SpringBoot集成Beetl后统一处理页面异常的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享
查看更多