Core Java 8 学习笔记(七)接口和内部类
来源:互联网 发布:淘宝卖坐骑要建dk号 编辑:程序博客网 时间:2024/04/27 22:07
一、接口(interface)
1. 在Java中,没有C++那样的多继承机制,所以有了接口和内部类的概念。
2. 和抽象类的区别
- 一个类只能继承一个抽象类,但是可以实现多个接口。
- 接口可以看作是成员函数全部是抽象的特殊抽象类
- abstract class和interface所反映出的设计理念不同。其实abstract class表示的是"is-a"关系,interface表示的是"like-a"关系。
- 实现 (implement)一个接口(interface)的时候,是一定要实现接口中所定义的所有方法,而不可遗漏任何一个。
- 接口是公开(public)的,里面不能有私有的方法或变量,是用于让别人使用的,实现接口的一定要实现接口里定义的所有方法。
- 而抽象类是可以有私有方法或私有变量的,实现抽象类可以有选择地重写需要用到的方法,但是必须实现里面所有的抽象方法。
3. 总结(摘):abstract class 和 interface 是 Java语言中的两种定义抽象类的方式,它们之间有很大的相似性。但是对于它们的选择却又往往反映出对于问题领域中的概 念本质的理解、对于设计意图的反映是否正确、合理,因为它们表现了概念间的不同的关系(虽然都能够实现需求的功能)。这其实也是语言的一种的惯用法,希望读者朋友能够细细体会。
4. 一些接口
- Cloneable用来实现深拷贝
- Comparable可用于Array.sort排序时的比较
二、内部类
1. 内部类的共性:
- age,this.age, Out.this.age分别访问的是方法的局部变量,内部类的私有变量,外部类的私有变量
- 程序编译过后会产生两个.class文件,分别是Out.class和Out$In.class
- 可以在类里面定义两个内部类,分别继承,这样子就实现了多继承,而且还封装隐藏起来了。
- 就是说是外部类的一个成员,和成员函数,成员变量没什么区别,提供方便的访问和封装保护。
4. 匿名内部类
- 可以说是为节省空间或代码而发明了匿名内部类,非常使用和常见
- 没有类名,直接new出来
- (重要)可以继承一个抽象类或者实现多个接口,并实现所有的抽象方法。
- 如果用static 将内部内静态化,那么内部类就只能访问外部类的静态成员变量,具有局限性
三、链接
匿名内部类的讲解:http://blog.csdn.net/liuzhidong123/article/details/6561521
动态代理(高级技术,mark!):http://www.cnblogs.com/jqyp/archive/2010/08/20/1805041.html
0 0
- Core Java 8 学习笔记(七)接口和内部类
- [core java学习笔记][第六章接口与内部类]
- Java Core 接口和内部类
- JAVA学习笔记-抽象类,接口和内部类
- Java学习笔记(七)反射及内部类
- Java学习笔记(七)--权限修饰符 内部类
- JAVA学习笔记----接口与内部类
- java学习笔记-接口与内部类
- java笔记--接口和内部类
- Java学习笔记(接口与内部类)
- Java学习笔记(4):接口与内部类
- Java核心技术(第8版)学习笔记_接口与内部类
- Java类和接口(常规内部类、静态内部类、局部内部类、匿名内部类、抽象类、接口)
- java 接口和内部类
- java--接口和内部类
- java学习笔记---第六章接口与内部类
- Java学习笔记-对象-继承-接口-多态-内部类
- Java学习笔记四——接口与内部类
- 快乐Node码农的十个习惯
- Jquery 获取 radio选中值
- JQuery Mobile 如何实现页面预加载功能
- iOS多线程的初步研究(三)-- NSRunLoop
- C语言类型定义
- Core Java 8 学习笔记(七)接口和内部类
- platform
- 全字库
- form[i]替换form.all(i)
- Adb connection Error:远程主机强迫关闭了一个现有的连接
- HDOJ 1083 二分匹配
- JSON初入门
- 程序员的自我修养——操作系统篇
- win7 Eclipse连接Hadoop