有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在Java中向抽象基类添加成员对部署的影响

我是Java的新手,所以下面的问题看起来很简单

背景:

情景1:
我在Java中有一个抽象基类C1,带有N接口成员函数
客户机将此类用作包,并实现Client1客户机业务逻辑
因此Client1使用包Package1(其中包含C1类定义)可以使用jar JAR1

场景2:
我想了解向类C1添加新成员函数的影响。带有其他成员的类C1(比如我们调用C2)包含N+M个成员函数(假定客户端不使用这些函数)具有jar文件JAR2

现在可以存在多种部署组合-
Client1(构建于Package1)在JAR1
的环境中运行 Client1(构建于Package1)在JAR2
的环境中运行 等

<>我基本上是从C++背景出发,当一个新的接口添加到被暴露给客户端的类时,将详细研究VPTR的概念及其影响。p>

问题:
a、 在JAVA的情况下,这些扩展需要如何分析和实现(关于这些扩展的任何材料都非常有用)
b、 如果这在java中是一个“安全选项”,那么在这种情况下,我们还需要处理哪些其他注意事项


共 (2) 个答案

  1. # 1 楼答案

    如果我理解正确,您的问题是关于修改接口的含义

    实现一个接口可以使一个类在其承诺提供的行为方面变得更加正式。接口在类和外部世界之间形成契约,编译器在构建时强制执行该契约

    interface Turns
    {
       public void turnLeft();
       public void turnRight();
    }
    
    class Device implements Turns
    {
       public void turnLeft()
       {
         //implementation
       }
       public void turnRight()
       {
         //implementation
       }
    }
    

    现在,如果我们需要修改接口。我们要做的是扩展接口

    interface TurnsAllWays extends Turns
    {
       public void turnsBack();
    }
    

    所以现在设备可以继续使用,或者在必要时进行修改