Java之继承--概念

       大千世界纷纷扰扰,表面上客观事物之间没有什么关系,但经过抽象分析发现客观事物之间具有内在联系。例如,学生和教师是两个不同群体。抽象之后能找到学生和教师都是这个“人”共同点,他们之间也有区别,学生有班级、学习课程、学习、参加考试等,而教师有部门名称、岗位、工资、批改作业等,下图显示了学生和教师之间的关系。


       面向对象编程中,针对学生和教师之间的关系(见上图),人定义成 Person类称为一般类,该类具有学生和教师的共同特征和行为,如都有姓名、身份证号和联系方法等,都要看书、吃饭、休息等;学生和教师定义成学生类Student和教师类Teacher,这两个类称为特殊类,他们除具有Person类的共性外,还具有特殊性。学生类Student和教师类Teacher是Person类的子类(派生类),Person类是学生类 Student 和教师类Teacher 的父类(基类)。

       类A和类 B,如果类B具有类A的全部属性和方法,而且又具有自己特有的某些属性和方法,则类A称为一般类,类B称为A的特殊类。Person类是一般类,Student类是 Person 类的特殊类。

       面向对象编程的继承,指在由一般类和特殊类形成的“一般-特殊”之间的类结构中,把一般类和所有特殊类都共同具有的属性和操作一次性地在一般类中进行定义,特殊类不再重复定义一般类已经定义的属性和操作,特殊类自动拥有一般类(以及所有更上层的一般类)定义的属性和操作。特殊类的对象拥有一般类的对象的全部属性与操作(除非进行限制),称为特殊类对一般类的继承。

       一个类是子类还是父类,与该类所在的类层次有关,一个类既可以是父类也可以是子类

       继承具有以下特征:

       (1)继承关系具有传递性。若类C继承类B,类B继承类A,则类C拥有从类B继承的属性与方法,也拥有从类A继承的属性和方法,还能定义新的属性和方法。

       (2)继承简化了人们对客观事物的认识和描述,继承树清晰体现类之间的层次结构。

       (3)继承提供了软件复用功能。若类B继承类A,那么建立类B时只需要描述与父类(类A)不同的特征(数据成员和成员方法)。这种方式减少代码量和数据的冗余度,大大增加代码的重用性。

       (4)继承降低了模块间的接口和界面,大大增强了软件的可维护性。

       (5)具有多种继承形式。①多重继承,即理论上一个类可以是多个一般类的特殊类,它可以从多个一般类中继承属性和方法。②单继承,即一个子类只能有唯一的一个父类。 Java出于安全性和可靠性考虑,类之间仅支持单继承,通过接口机制实现多重继承。

       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值