当前位置 主页 > 网站技术 > 代码类 >

    java interface 接口的使用好处分析

    栏目:代码类 时间:2019-11-26 12:05

    本文实例讲述了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程序设计有所帮助。