- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
面向对象程序设计Java
Chenzheng
Mar. 2012
第5章 超类、子类和继承性
继承:类继承另一个类,这个类除了创建自己的成员外,还能够继承或扩展另一个类的成员
运用继承,你能够创建一个通用类,它定义了一系列相关项目的一般特性。该类可以被更具体的类继承,每个具体的类都增加一些自己特有的东西。
被继承的类叫超类(superclass),继承超类的类叫子类(subclass)
类的继承
继承性特性如下:
单一继承性:子类只能有一个超类,而超类可以有多个子类;
子类继承超类的所有成员;
子类可以创建自己的成员;
子类不能继承超类的构造器,只能在构造器中通过super()调用超类的构造器;
子类的构造器首先要调用超类的构造器;
多态性之一:子类的成员隐藏和覆盖超类中相同的成员;
多态性之二:超类的对象可以对子类的实例引用;
由abstract和final修饰的类指示类的是否必须或不能被继承。
类的继承
创建子类,格式如下:
[abstract|final] class SubCls extends SupCls{
SubClassBody
}
abstract是可选项,修饰的类叫抽象类,指示其对象引用的必须是其子类实例;
final是可选项,修饰的类叫终结类,指示其不能被继承,不能有子类;
SubCls是创建的类,称为子类;
extends是关键字,指示两个类存在的继承关系;
SuperCls是SubCls类的超类。
类的继承
在创建类时,若缺省extends,则该类就为Object类的直接子类。Object类是Java语言中所有类的直接或间接超类。Object类存放在java.lang包中。
子类继承了超类的所有成员,但是无法访问某些受限的成员
子类中可以访问从超类继承下来的三种访问权限设定的成员
public;
protected;
缺省。
类的继承
类的继承
父类(超类)
子类
class Person {
String name;
char sex;
Date birthday;
void setData(String n, char s, Date b){
name = n;
sex = s;
birthday = b;
}
}
class Student extends Person{
String stuID;
String speciality;
void setData(String n, char s, Date b, String id,
String spec){
setData(n, s, b);
stuID = id;
speciality = spec;
}
}
类Person有成员:
成员变量:name、sex、birthday
成员方法:setData(String,char,Date)
类Student有成员:
成员变量:name、sex、birthday、stuID、speciality
成员方法:setData(String,char,Date)、
setData(String,char,Date,String,String)
其中:红色标识的成员是类Student继承超类Person的成员。
类的继承
SimpleInheritance.java
虽然子类可以继承超类所有成员,但是因为超类中成员的访问控制,子类无法访问某些受限成员。
在超类中,由private修饰的访问权限的成员变量和方法,虽然被子类继承,但是子类不能访问。
类的继承
Access.java
一个更实际的例子:
为了新的功能而编写子类
类的继承
DemoBoxWeight.java
超类对象可以引用子类实例
类的继承
RefDemo.java
第5章 超类、子类和继承性
Java语言中,每个类均有三个量,它们具有特别的含义及用途。
null
this
super
null,this和super
null
null表示变量的值为“空”,用于表示对象或数组还没有相应的实例引用。例如:
Point pNull = null;
null,this和super
this
表示对类的实例访问,它也表示了对象对该实例引用访问。;
在类中可以来指向成员变量,以示区别于非成员变量;
在构造器中,使用this()形式对另一个构造器的调用;
在类的创建中,需要表示对自身的实例访问时,用this表示。
null,this和super
HSBColor.java
super
在子类中,使用super访问被隐藏的超类变量,被覆盖的超类方法。
使用有三种情况:
访问被隐藏的超类成员
您可能关注的文档
最近下载
- 交通银行真题及答案(可下载).doc VIP
- 《建筑节能与可再生能源利用通用规范》.pdf VIP
- GZ067 智能节水系统设计与安装赛项正式赛卷模块A 评分标准-2023年全国职业院校技能大赛赛项正式赛卷.docx VIP
- 高标准农田建设项目施工组织设计 .pdf VIP
- TPM课件完整版本.ppt VIP
- 河北秦皇岛职业技术学院选聘专任教师考试真题2024.docx VIP
- 学堂在线《临床中成药应用》作业单元考核答案.docx VIP
- 三国两晋南北朝的政权更迭与民族交融ppt课件.pptx VIP
- 围墙护栏制作与安装工程检验批质量验收记录.docx VIP
- 2025年甘肃省张掖市辅警考试题库(附答案).docx VIP
文档评论(0)