Jython 类与继承:深入解析与实践
1. 封装、抽象和信息隐藏
1.1 基本概念
封装是将多个实体组合成一个新的、更高级的实体,例如将数据和相关功能封装到一个类中。抽象则是通过组织功能来简化接口并隐藏实现细节。信息隐藏是为了简化,只向用户展示他们需要看到的内容。
1.2 Java 与 Jython 的对比
Java 使用如 private
和 protected
这样的属性权限修饰符来强制实现抽象,类似于设置“电子围栏”。而 Jython 的隐私机制则较为开放。在 Jython 中,以一个下划线开头的属性表示类内部使用,但这只是约定,并非强制。以两个下划线开头的属性会进行名称修饰(name mangling),例如类 A
中的 __var
会被修饰为 _A__var
,但这也只是通过模糊名称来实现一定程度的隐私,属性仍然可以通过修饰后的名称访问。
>>> class A:
... __classVar = "A class variable designated as private"
... def __init__(self):
... self.__instVar = "An instance variable designated as private"
... def __privateMethod(self):
... pri