内部类与无名内部类
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了内部类与无名内部类相关的知识,希望对你有一定的参考价值。
内部类:
内部类是类中的类,内部类也属于类的一个成员。内部类分静态类和实例类,内部类也可以进行继承、实现接口等类可以做的操作。
实例类:
内部类也是类中成员,也有静态和实例的区分,所以实例的内部类实际上相当于一个实例成员,要注意的是:实例的内部类不可以写静态的成员。实例内部类基本可以对外类的所有成员进行访问:
因为实例成员要在new对象时才会分配内存,所以在外类需要构建实例内部类的对象时,必须先得构建加载外类的对象来构建实例内部类的对象。例如:
静态内部类:
静态内部类就像类的静态成员一样,使用static关键字声明。静态内部类不可以对外类或其他类的实例成员进行访问,静态内部类也是像静态成员一样在类加载时就加载分配内存,所以不需要创建外类的对象就可以构建静态内部类的对象。例如:
内部类可以做类可以做的事情,例如继承父类实现接口等:
内部接口:
可以在类中声明一个内部接口,这个接口可以被类实现。与普通接口一样唯一的区别就是申请在内部。例如:
内部抽象类:
可以在类中声明一个内部抽象类,普通抽象类和纯抽象类都可以,这个抽象类可以被子类继承。与普通抽象类一样唯一的区别就是申请在内部。例如:
内部类会不会产生class文件呢?:
只要是声明的是类都会产生一个class文件:
会产生图片中这种命名格式的class文件:Five$A.class=外类名$内部类名.class
无名内部类:
申请一个无名内部类的话,这个类会自动继承于外类,可以重写父类的方法,无名内部类可以写在main方法内,但是不可以写静态成员。例如:
这种写法也是申请一个无名内部类:
还可以声明一个自动继承别的类的无名内部类:
无名内部类也是会产生一个class文件:
会产生图片中这种命名格式的class文件:Five$1.class=外类名$无名内部类名(用数字表示).class
本文出自 “12831981” 博客,请务必保留此出处http://12841981.blog.51cto.com/12831981/1974346
以上是关于内部类与无名内部类的主要内容,如果未能解决你的问题,请参考以下文章