一个内部类对象可以访问创建它的外部类对象的内容
如果不是静态内部类,那没有什么限制。
匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,
但一个内部类可以作为一个接口,由另一个内部类实现。
匿名类本身就是通过继承类或者接口来实现的。
但是不能再显式的extends 或者implements了。- 先定义一个接口:
- interface Contents {
- int value();
- }
- 再定义一个类(构造函数不是默认的):
- public class Wrapping {
- private int i;
- public Wrapping(int x) { i = x; }
- public int value() { return i; }
- }
- 先实现接口:
- public class Parcel6 {
- public Contents cont() {
- return new Contents() {
- private int i = 11;
- public int value() { return i; }
- }; // Semicolon required in this case
- }
- public static void main(String[] args) {
- Parcel6 p = new Parcel6();
- Contents c = p.cont();
- }
- }
- 再继承类:
- public class Parcel7 {
- public Wrapping wrap(int x) {
- // Base constructor call:
- return new Wrapping(x) {
- public int value() {
- return super.value() * 47;
- }
- }; // Semicolon required
- }
- public static void main(String[] args) {
- Parcel7 p = new Parcel7();
- Wrapping w = p.wrap(10);
- }
- }
复制代码 |