在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
的环境中运行
等
问题:
a、 在JAVA的情况下,这些扩展需要如何分析和实现(关于这些扩展的任何材料都非常有用)
b、 如果这在java中是一个“安全选项”,那么在这种情况下,我们还需要处理哪些其他注意事项
# 1 楼答案
如果我理解正确,您的问题是关于修改接口的含义
实现一个接口可以使一个类在其承诺提供的行为方面变得更加正式。接口在类和外部世界之间形成契约,编译器在构建时强制执行该契约
现在,如果我们需要修改接口。我们要做的是扩展接口
所以现在设备可以继续使用,或者在必要时进行修改
# 2 楼答案
要回答这两个问题:
a)本文描述了JVM如何加载和链接类文件:http://java.sun.com/docs/books/jvms/second_edition/html/ConstantPool.doc.html
b)只要方法/公共成员的签名没有改变,调用代码仍然有效。更改这些将在加载类时导致运行时异常