Thinking in Java Study(08)
来源:互联网 发布:已而为知之者,殆而已矣 编辑:程序博客网 时间:2024/06/05 12:38
接口和内部类
1. 接口使用interface关键字定义,接口可以看作是“纯粹的”抽象类。它允许类的创建者为一个类建立其形式:有方法名、参数列表和返回类型,但没有任何方法体。接口可以包含有数据成员,但它们隐含都是static和final的。
接口只提供了形式,而未提供任何具体实现。
接口的实现通过关键字implements实现,接口中的方法被自动定义为public的。接口也可以向上转型。
类继承只能从一个类继承,而类可以实现多个接口,并可以向上转型为任何一个实现了的接口。
2. 使用接口的两个原因:(1)为了能够向上转型为不止一个的基类型
(2)防止客户端程序员创建该类的对象
3. 组合接口时的名字冲突
实现多重继承时,可能会有两个接口定义的方法名称相同,但参数、返回值或实现不同。应尽量避免这种情况发生。
4. 通过继承来扩展接口,如果想在接口中添加新的方法可以采用继承的方式,继承后的类仍然是接口不实现任何方法,添加的方法认为声明。
5. 群组常量
由于接口中任何数据成员都自动是static和final的,所以接口就成为了一种很便捷的用来创建常量组的工具。(类似C或C++中的enum类型)。
6. 初始化接口中的数据成员
接口中成员是static和final的,不能为空的final,但可以用非常量的表达式初始化。当成员第一次被访问时初始化。
7. 内部类
如果想从外部类的非静态方法之外的任意位置创建某个内部类的对象,需要具体指明这个对象的类型:OuterClassName.InnerClassName
8. 链接到外部类
当生成一个内部类的对象时,此对象与制造它的外围类的对象之间就有了一种联系,它能访问其外围对象的所有成员,而不需要任何特殊条件。
要创建内部类必须使用此外围类的一个对象来创建起内部类的一个对象
9. 内部类的继承
继承内部类时,构造器方法要保证外部类的初始化。
10. 使用内部类的原因
每个内部类都能独立的继承自一个(接口的)实现,所以无论外围类是否已经继承了某个(接口的)实现,对于内部类都没有影响。
- Thinking in Java Study(08)
- Thinking in Java Study(01)
- Thinking in Java Study(02)
- Thinking in Java Study (03)
- Thinking in Java Study(04)
- Thinking in Java Study(05)
- Thinking in Java Study(06)
- Thinking in Java Study(07)
- Thinking in java-08
- thinking in java ---08多态
- [学习笔记]Thinking in Java (the 2nd edition) Study Note (1)
- [学习笔记]Thinking in Java (the 2nd edition) Study Note (2)
- [学习笔记]Thinking in Java (the 2nd edition) Study Note (1)
- [学习笔记]Thinking in Java (the 2nd edition) Study Note (2)
- [学习笔记]Thinking in Java (the 2nd edition) Study Note (3)
- [学习笔记]Thinking in Java (the 2nd edition) Study Note (4)
- [学习笔记]Thinking in Java (the 2nd edition) Study Note (4)
- [Java]Thinking in Java
- this is my first blob(myc)
- AJAX指南(1)---- Hello,world!
- 今天是老婆的生日,,,我在想晚上是不是请她吃顿大餐呢。
- Lucene索引性能调整测试结果
- 关于对象设计的几个原则
- Thinking in Java Study(08)
- 弹出框不刷新的解决办法
- 一个基于角色的WEB 安全访问控制系统
- RBAC 模型初探
- 基于web的RSS阅读器,盗用AJAX之名
- 电脑无法进入
- 我只想把好的东西放在找得到的地方!
- 浅谈技术人员的发展
- 同一个进程(pid一样),不同检测工具检测到的端口怎么不一样呢31488端口和123端口报告