我是 Java 的新手,所以下面的问题可能看起来微不足道。
背景:
场景一:
我在 Java 中有一个抽象基类 C1
,其中包含 N
接口(interface)成员函数。
客户端使用这个类作为一个包,实现Client1
客户端业务逻辑。
因此 Client1
使用包 Package1
(包含 C1
类定义)能够使用 jar JAR1
。
场景二:
我想了解向类 C1
添加新成员函数的影响。具有附加成员的类 C1
(假设我们调用 C2
)包含 N+M
成员函数(假设客户端不使用)有 jar文件 JAR2
。
现在可以存在多种部署组合-
Client1
(构建于Package1
)在JAR1
环境中运行
Client1
(构建于Package1
)在JAR2
环境中运行
等等
我基本上来自 C++ 背景,在那里,当将新接口(interface)添加到暴露给客户的类时,将详细研究 vptr 的概念及其影响。
问题:
A。在JAVA的情况下,这些扩展需要如何分析和实现(任何关于相同的 Material 都非常有帮助)。
b.如果这是 java 中的“安全选项”,那么在这种情况下我们需要处理的其他注意事项是什么。
最佳答案
回答这两个问题:
a) 本文介绍了 JVM 如何加载和链接类文件:http://java.sun.com/docs/books/jvms/second_edition/html/ConstantPool.doc.html .
b) 只要方法/公共(public)成员的签名没有改变,调用代码仍然有效。更改这些将导致加载类时出现运行时异常。
关于java - 在 Java 中向抽象基类添加成员的影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9396401/