点击查看:2015计算机等级考试二级Java入门教程章节汇总
点击查看:2015计算机等级考试二级Java入门教程第六章汇总
6.2 类继承
概括地讲,从一个基类派生出一个新类的过程是补充类定义的过程。说明的附加成员使得派生类有别于基类。在新类中声明的所有成员是除已经在基类中定义的成员以外的那些成员。在由Dvg派生的Spaniel类中,保存名字和品种的数据成员定义在Dag类中,它们也将自动地成为Spaniel类的成员。一个Spaniel对象内部将总拥有一个完整的Dog对象,包括所有的数据成员和方法。这并不意味着在Dog类中定义的所有成员对于Spaniel类中的特有方法都可用,有一些可以用,而有一些则不可用。在派生类中包含可以在派生类中访问的基类成员,我们把它称之为类的继承(class inheritance).基类的被继承成员(inherited member)在派生类内是可被访问的那一部分,如果基类中的成员在派生类中不可访问,则它就不是派生类的被继承成员,但是不是被继承成员的基类成员仍然作为派生类对象的一部分。
派生类的被继承成员是那个类的一个完整成员,并且它可以被类中的任何方法自由地访问。派生类对象将包含基类的所有被继承成员(包括字段和方法〕,以及派生类所特有的成员。注意,一个派生类对象总是在其内部包含一个完整的基类对象,所有没有被继承的字段和方法也包括在内。我们需要进一步分析继承是如何操作的,以及一个基类成员的访问属性是如何影响它在派生类中的可见性的。
我们需要考虑几个定义和使用派生类方面的问题。第一,我们需要知道基类的哪些成员被继承到派生类中。我们将看到对于数据成员和方法分别意味着什么,在这里我们应该清楚它们之间的细微差别。我们还会看到在你建立一个派生类对象时会发生的事情。关于这一点,还有一些问题需要再周密考虑一下。让我们从由基类继承的数据成员开始介绍。
继承数据成员
在下面这个示意图中显示了在子类中被继承的类成员允许有哪些访问属性。它说明了在同一个包中定义子类或者在包含基类的不同包中定义子类所发生的情况口请记住,继承暗示着成员在派生类中可访问,而不仅仅限于眼前定义的类。
注意,要在包含基类的包的外部派生一个类,这个基类就必须声明为public,如果没有声明为public,这个类就不能直接地扩展到包的外部。
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |