两个继承的类可以访问基类中的同一个变量吗?

时间:2012-09-23 20:38:21

标签: class

设计课程的好方法是什么?我正在尝试创建一个简单的聊天程序。我希望屏幕中的所有对象都被封装。我创建了一些类,一个日志记录类,一个消息堆类(用于保存已接收和发送的消息),一个文本框类和一个按钮类。我希望消息堆,文本框和按钮共享相同的字符串变量,除非我希望它封装在类中。

我确实尝试过创建一个Base类。这将保存文本框和按钮类共有的所有数据和函数。这三个类将从Base派生以使用其共享变量。只有当我这样做时,变量才会被共享。有没有办法做到这一点?有点像全局变量?只在自己的班级和派生的班级?两个派生类的两个对象都应该能够访问Base类对象的变量。

1 个答案:

答案 0 :(得分:1)

您正在混合类和对象。当你有一个带有一些成员变量的基类时,所有派生类都可以(可能)访问基类中的成员变量。

但是,当您实例化不同的派生类或其中一个派生类时,每个对象都有一组完整的成员变量,包括基类中的成员变量,因为这正是一个对象。

如果您希望某些对象组使用相同的“共享”变量,那么您可以将这些共享内容粘贴到专用的“共享”类中。然后,对于需要共享这些“变量”的每个目标组,您将创建此“共享”类的实例,并将其传递给组中的所有对象。

这比摆弄“静态”类成员或者使用您正在使用的语言调用的任何内容更灵活,因为通过拥有多个“共享”对象,您可以拥有多个这些“组”对象确切地确定哪些“实际”对象共享相同的“共享”数据/变量。

如果不了解更多有关正在发生的事情,很难就如何设计类和对象层次结构提供更多建议。