前言:
如今各位老铁们对“python子类与父类”都比较关心,大家都需要剖析一些“python子类与父类”的相关资讯。那么小编在网络上收集了一些对于“python子类与父类””的相关文章,希望我们能喜欢,大家一起来了解一下吧!首先,我们写一个父类:
package com.wangyj.demo;public class Widget {public Widget(){ System.out.println("父类构造器");}public synchronized void doSomething() {}public String test() { System.out.println("父类test 方法"); return "";}}
然后定义一个子类:
package com.wangyj.demo;public class LoggingWidget extends Widget {public LoggingWidget(){System.out.println("子类构造方法");}@Overridepublic synchronized void doSomething() {System.out.println(toString()+ " call doSomething"); super.doSomething();}public static void main(String[] args) { LoggingWidget widget = new LoggingWidget(); widget.doSomething();}}
运行结果如下:
分析:
我们使用jdk 自带的工具javap进行反编译。进入到.class文件所在的目录执行命令 javap -c -l -v LoggingWidget;
输出结果如下:
从javap 返回结果图1-3中可以看出,main方法的执行顺序 先执行的 #12 的LoggingWidget的构造器,再观察javap 返回结果图1-2的LoggingWidget的构造器中执行了#1方法,#1便是父类的init 方法;然后main方法中又执行了子类的init方法
最后 执行doSomething()方法。从而可知,创建子类的时候先调用了父类的init方法,然后调用了自身的init 方法。
结论:
子类创建时,先调用的是父类的构造器方法,然后再次调用的子类的构造器方法。只会创建一个子类对象,不会创建父类对象,但是通过调用父类的init 方法,可以加载父类的方法。
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #python子类与父类 #java父类如何调用子类方法