- 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基础笔记3继承、实现
day 07 继承7-014 继承(上)继承:提高了代码的复用性让类与类之间产生了关系,有了这个关系,才有了多态的特性。注意:千万不要为了获取其他类的的功能,简化代码而继承;必须是类与类之间有所属关系才可以继承。所属关系:is a class Person //学生和工人都有姓名和年龄{String name ;int age ;}class Student extends Person //Student类继承Person类{void study (){s.o.p (“study”) ;}}class Worker extends Person//Work类继承Person类{void work (){s.o.p (“work”) ;}}7-02Java中只支持单继承,不支持多继承(Java有多继承,接口与接口之间多继承),因为多继承容易带来安全隐患。当多个父类中定义了相同功能,而功能内容不一样时,子类对象不确定要运行哪一个。但是Java用另一种体现形式来完成表示多继承:即多实现。Java支持多层继承,也就是一个继承体系:A继承B ,B继承C想要使用体系,则需查阅父类功能,创建子类对象使用功能。查阅父类功能可以了解共性功能,就知道该体系的基本功能,这个体系就可以基本使用了。创建子类对象:一是因为父类可能不能创建对象,二是因为创建子类对象可以使用更多的功能,包括基本的,也包括特有的。7-03除了继承关系,还有其他关系,如聚集:聚合:球员和球队的关系组合:手是人身体的一部分7-04子父类中:变量、函数、super :代表一个父类空间 this :代表一个本类对象的引用class Fu //父类{intnum = 4 ;}class Zi extends Fu //子类{//intnum = 5 ;void show {//System.out.println (num); //打印结果 5//System.out.println (super.num); //打印结果 4System.out.println (this.num); //编译成功,打印结果4}}class ExtendsDemo2main ……{Zi z = new Zi ( ) ;z.show () ;}1.如果子类中出现非私有的同名成员变量时,子类要访问本类中的变量,用this;子类要访问父类中的同名变量用super 。子类不能直接访问父类中的私有内容。7-05子类出现和父类一模一样的函数时,当子类对象调用该函数,会运行子类函数的内容。这种情况是函数的另一个特性:重写(覆盖)override当子类继承父类,沿袭了父类的功能到子类中,子类虽具备该功能,但功能内容不一致,这是使用覆盖特性,保留父类的功能定义,并重写功能内容。代码修改时不要修改源代码,容易引起连锁反映,可以定义一个新的类,利用复写功能。覆盖:子类覆盖父类,必须保证子类权限大于等于父类权限,才可以覆盖,否则编译失败(但当父类权限为private时,即使子类权限大于等于父类,也不能实现覆盖,因为子类不知道父类的这个功能,被私有了,但是编译可以通过)静态只能覆盖静态,或被静态覆盖。函数两个特性重载:同一个类中,只看同名函数的参数列表重写:子类中,子父类方法要一模一样。7-06class Fu{Fu ( ) //构造函数{s.o.p (“fu run”);}}classZi{Zi ( ) //构造函数{// super ( ) ; //此处隐藏一句代码。调用父类中构造函数s.o.p (“zi run”);}}main :Zi z = new Zi ( ) ; ---打印结果fu run zi run 在子类对象进行初始化时,父类的构造函数也会运行,且优先于子类运行,因为子类的构造函数默认第一行第一条隐式的语句 super () ; 它会访问父类中空参数的构造函数,而且子类中的所有的构造函数默认第一行都是super();但是当父类的构造代码块不是Fu () { ……} ,而是Fu (int x ) { }时,子类必须定义super,此时super不是隐式语句。为什么子类一定要访问父类中的构造函数?因为父类中数据子类可以直接获取,所以子类对象建立时,需要先查看父类是如何对这些数据进行初始化的,所以子类对象初始化,要先访问一下父类中的构造函数。如果要访问父类中指定的构造函数,可以通过手动定义super语句的方式来指定。调用父类构造函数super(name) ;调用父类一般函数super.show()super语句一定放在子类构造函数的第一行。this语句和super语句只能有一个,但子类中至少有一个构造函数需要访问父类,否则程序就会出现死循环。子类的实例化过程:结论:子类的所有的构造函数,默认都会访问
您可能关注的文档
- 2018中考政治时政热点专题四 践行社会主义核心价值观(8.ppt
- 2018学年最新新人教版二年级数学上册_总复习_长度单位和角的初步.ppt
- 2018二级建造师建设工程法规及相关知识陈印课件1.ppt
- 2018年COD业务培训——业务发展篇-总公司20180221x.pptx
- 2018年廉政党课课件.ppt
- 2018年支吊架异常及锅炉爆管原因分析与处理.ppt
- 2018年营业税改征增值税专题培训精品课件..ppt
- 2018新安监人员及新员工安全入门实用培训.pptx
- 2018房地产行业微信公众平台整体运营营销解决方案众筹项目计划书..ppt
- 2281-2010 室温拉伸宣贯材料之五主要技术变化.ppt
原创力文档


文档评论(0)