Java内部类的继承关系和构造方法
来源:互联网 发布:手机上开淘宝店怎么开 编辑:程序博客网 时间:2024/05/18 07:33
实验是检验真理的唯一标准。
下面我们通过实验来看看Java内部类的继承关系和他们的默认构造方法是怎样的。
实验1
public class A extends B{ public static void main(String[] args) { Class superClazz = A.class.getSuperclass(); System.out.println("A的父类:" + superClazz.getName()); System.out.println("A的祖先类:" + superClazz.getSuperclass().getName()); }}//输出//A的父类:B//A的祖先类:java.lang.Object
结论:所有外部类的祖先类都是Object
实验2:内部类的父类
public class A{ public static void main(String[] args) { Class superClazz = C.class.getSuperclass(); System.out.println("C的父类:" + superClazz.getName()); } class C { int c; }}//输出://C的父类:java.lang.Object
public class A{ public static void main(String[] args) { Class superClazz = C.class.getSuperclass(); System.out.println("C的父类:" + superClazz.getName()); } static class C { int c; }}//输出://C的父类:java.lang.Object
public static void main(String[] args) { ActionListener actionListener = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { } }; Class superClazz = actionListener.getClass().getSuperclass(); System.out.println("匿名内部类的名称:" + actionListener.getClass().getName()); System.out.println("匿名内部类的父类:" + superClazz.getName()); }//输出://匿名内部类的名称:A$1//匿名内部类的父类:java.lang.Object
结论:成员/静态/匿名内部类的父类是Object
实验3:内部类的构造方法
public class A{ public static void main(String[] args) { C c = new C(); c.c = 3; } static class C { int c; }}
通过javap -c A$C.class查看字节码
Compiled from "A.java"class A$C { int c; A$C(); Code: 0: aload_0 1: invokespecial #1 // Method java/lang/Object."<init>":()V 4: return}
对于成员内部类:
public class A{ public static void main(String[] args) { new A().test(); } void test() { A.C c = new A.C(); } class C { int c; }}
Compiled from "A.java"class A$C { int c; final A this$0; A$C(A); Code: 0: aload_0 1: aload_1 2: putfield #1 // Field this$0:LA; 5: aload_0 6: invokespecial #2 // Method java/lang/Object."<init>":()V 9: return}
结论:
- 静态内部类有一个默认的无参构造方法
- 成员内部类有一个默认的带一个参数的构造方法,这个参数是外部类的实例
阅读全文
0 0
- Java内部类的继承关系和构造方法
- 匿名内部类 和继承的关系
- JAVA匿名内部类的构造方法
- Java多继承方法(名)冲突和成员内部类、局部内部类、静态内部类、匿名内部类
- Java多继承方法(名)冲突和成员内部类、局部内部类、静态内部类、匿名内部类
- 继承内部类的构造器问题
- java内部类的继承
- java中匿名内部类的构造方法调用
- Java笔记9:构造方法,内部类
- JAVA中内部类的继承和覆盖问题
- java 继承中构造方法和类成员方法间的关系
- java继承内部类
- java继承内部类
- Java 内部类继承
- Java 继承内部类
- java 继承 内部类
- Java继承关系下的构造方法调用
- java的继承关系中,构造方法调用问题
- 推荐个学习python的网站
- 7.7、配置memtable阈值
- NYOJ488~素数环
- Android学习——自定义控件(1)
- 机器学习之Logistic回归
- Java内部类的继承关系和构造方法
- three.js光源的应用
- 基于UDP的P2P聊天工具 0.5——自定义消息协议
- 记忆力训练--网页小游戏
- 解决gradle长时间同步不了的一个怪方法
- HTTP method POST is not supported by this URL解决方案
- Android基础知识四(View类和ViewGroup类、View绘制流程机制)
- post请求爬取艺龙酒店的评论
- VirtualBox实现宿主机和虚拟机之间网络的通讯