




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 MLDN 软件教学研发部软件教学研发部JAVA 应用开发详解应用开发详解面向对象(高级)内部类内部类的定义l内部类:一个类的定义放在另一个类的内部,这个放在内部的类就叫做内部类。包括成员内部类(非静态)、成员内部类(非静态)、匿名内部类匿名内部类、静态嵌套类、局部内部类。l内部类可以像方法一样被修饰为public,default,protected和private,也可以是静态static的,即静态嵌套类。publicclassFirstclassContentspublicvoidf()System.out.println(InClassFirstsinnerClassContentsme
2、thodf();24.44.4内部类内部类3 TestGoods类不知道内类不知道内部类部类Content和和GDestination,内部内部类类提供了另一个层次提供了另一个层次的封装,把一个类隐的封装,把一个类隐藏在外部类的内部。藏在外部类的内部。内部类内部类生成的生成的class文件文件l内部类内部类和外部类在编译时,将生成各自的和外部类在编译时,将生成各自的class文件文件外部类的外部类的class文件的名称与类的生成规则相同文件的名称与类的生成规则相同内部类的内部类的class 文件名是由外部类的类名与内部类的类名文件名是由外部类的类名与内部类的类名用用“$”连起来形成的,如连起来
3、形成的,如 OutClassName$InnerClassName.class4内部类存在的作用内部类存在的作用-多重继承多重继承lJava是非常和善的提供了两种方式让我们曲折来实现多重继承:接口和内部类 。下面是利用接口实现多重继承:下面是利用接口实现多重继承:5interface CanFight void fight();interface CanSwim void swim();interface CanFly void fly();public class Hero implements CanFight,CanFly,CanSwim public void fly() public
4、 void swim() public void fight() 内部类存在的作用内部类存在的作用-多重继承多重继承l如果父类为抽象类或者具体类如果父类为抽象类或者具体类,那么就仅能通过内部类来实现多重继承了。6public class Father public int strong() return 9; public class Mother public int kind() return 8; public class Son class Father_1 extends Father public int strong() return super.strong() + 1; cl
5、ass Mother_1 extends Mother public int kind() return super.kind() - 2; public int getStrong() return new Father_1().strong(); public int getKind() return new Mother_1().kind(); 内部类存在的作用内部类存在的作用-多重继承多重继承l如果父类为抽象类或者具体类如果父类为抽象类或者具体类,那么就仅能通过内部类来实现多重继承了。7public class Test1 public static void main(String
6、args) Son son = new Son(); System.out.println(Son 的Strong: + son.getStrong(); System.out.println(Son 的kind: + son.getKind(); -Output:Son 的Strong:10Son 的kind:6匿名内部类匿名内部类也就是没有名字的内部类匿名内部类也就是没有名字的内部类正因为没有名字,所以匿名内部类只能使用一次,正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写它通常用来简化代码编写使用匿名内部类还有个前提条件:必须继承一个父使用匿名内部类还有个前提条件:必须
7、继承一个父类或实现一个接口类或实现一个接口不使用匿名内部类来实现抽象方法不使用匿名内部类来实现抽象方法abstract class Person public abstract void eat(); class Child extends Person public void eat() System.out.println(eat something); public class Demo public static void main(String args) Person p = new Child(); p.eat(); 运行结果:运行结果:eat something可以看到,我们用
8、Child继承了Person类,然后实现了Child的一个实例,将其向上转型为Person类的引用但是,如果此处的如果此处的Child类只类只使用一次使用一次,那么将其编写为独立的一个类岂不是很麻烦?这个时候就引入了匿名内部类匿名内部类的基本实现匿名内部类的基本实现abstract class Person public abstract void eat(); public class Demo public static void main(String args) Person p = new Person() public void eat() System.out.println(eat something); ; p.eat(); 运行结果:运行结果:eat something可以看到,我们直接将抽象类Person中的方法在大括号中实现了这样便可以省略一个类的书写在接口上使用匿名内部类在接口上使用匿名内部类interface Person public void eat(); public class Demo public static
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 班级纪律管理与执行措施计划
- 出售履带挂车合同样本
- 保温罐车销售合同样本
- 农药化肥合同标准文本
- 2025年小产权房购买合同范本
- 班级自我评估与反馈机制计划
- 关于店铺租赁合同样本
- 农村旧房买卖合同样本
- 出售股合同标准文本
- 冲锋舟租赁合同范例
- 2025年江苏金陵科技集团有限公司招聘笔试参考题库含答案解析
- 观察小鱼尾鳍内血液的流动实验
- 健身会籍顾问
- 电力系统分析知到智慧树章节测试课后答案2024年秋东北电力大学
- 2025年中航证券有限公司招聘笔试参考题库含答案解析
- 2024年中考历史真题汇编专题13 材料分析题(中国史部分)-教师
- 2025年上半年甘肃省林业和草原局事业单位招聘笔试重点基础提升(共500题)附带答案详解
- 化工单元操作知到智慧树章节测试课后答案2024年秋烟台职业学院
- 魏晋风度课件
- 【读后续写】2021年11月稽阳联考读后续写讲评:Saving the Daisies 名师课件-陈星可
- 化肥利用率研究
评论
0/150
提交评论