public class Test2 {
public static void main(String[] args) {
Father f = new Child();
f.service();
}
}
class Father{
public void service(){
System.out.println("parent service");
doGet();
}
public void doGet(){
System.out.println("parent doGet");
}
}
class Child extends Father{
public void service(){
System.out.println("child service");
super.service();
}
public void doGet(){
System.out.println("child doGet");
}
}
结果是:
child service
parent service
child doGet
比较难以理解的是调用super.service(),结果却是
parent service
child doGet
也就是说:
public void service(){
System.out.println("parent service");
doGet();
}
public void doGet(){
System.out.println("parent doGet");
}
这段代码中调用的doGet()是子类的doGet方法。
原因:我们方法调用的时候,会默认将this关键字传入进去(隐式传this),而Father f = new Child()这段代码,是一个父类引用指向子类对象。它会调用Child的方法。而隐式传的this就是Child的this。
所以当调用doGet()方法时,其实就相当于this.doGet()。(我们直接加上this,结果也是正确的)。
也就是Child 的doGet方法。
分享到:
相关推荐
Java可以通过调用Windows API来管理Windows系统的内存,释放内存缓存,获得CPU使用率,监视系统性能,获得系统内存信息,获得磁盘空间信息和枚举进程列表。 相关知识点: * Windows内存管理机制 * 虚拟内存和页面...
主要介绍了android调用C语言实现内存的读取与修改的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
问题描述: 在开发项目过程中,需要处理算法分析出来二进制流数据,并对数据解析处理转发。我们上层应用平台是使用java开发的...那现在上层应用面临的问题:访问java外部功能接口实现方式(即调用dll)怎么选择及实现?
在使用对象时,应该避免在经常调用的方法中创建对象,以免内存溢出。 监听器类型的资源注册后没有注销,而且要保证在 finally 块中进行注销,保证在异常情况下也会注销,否则一直都会驻在内存。 在使用监听器时,...
在序列化过程中充分利用了成员实现的序列化反序列化方法,与在toString方法中调用成员的toString方法有异曲同工之妙 2.充分利用Java实现的API接口。比如在类Index中的getDictionary方法中,需要返回所有保存的Term,...
NULL 博文链接:https://cyj86.iteye.com/blog/1095213
java通过ssh调用centos7指令,获取磁盘空间使用率、磁盘空间使用情况、网络使用情况,CPU使用率,内存使用率
最后调用构造方法,为成员变量赋值。返回堆内存中对象的引用(相当于首地址)给引用变量 rect,以后就可以通过 rect 来引用堆内存中的对象了。 创建多个不同的对象实例时,一个类通过使用 new 运算符可以创建多个...
java 生成对象的时候以及调用方法的时候,所使用的空间分布,包括对象和变量在内存的存储方式和分布方式的讲解。
调用 java webservice 的问题
NULL 博文链接:https://gaojingsong.iteye.com/blog/2317392
JMM的重要性在于它提供了一个跨平台的内存模型,使得Java开发者可以更好地理解Java语言的语言特性和内存相关的内容。JMM的概念包括堆、栈、本机内存、防止内存泄漏等方面。 本文将从JMM的简介、堆和栈、本机内存、...
java查看内存使用情况,启动新进程。sigar调用、有源码工程
JNI攻略之十一――启动虚拟机调用java类
今天小编就为大家分享一篇关于通过java调用datax,返回任务执行的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
1、通过java调用Python命令执行datax任务调度 2、自动开始任务和调度结束关闭任务调度释放内存 3、如果我们在cmd使用命令调度,执行完毕后无法释放内存,会造成内存泄露不足,出现报错“Error occurred during ...
该文档详细描述了,内存溢出各种问题和解决方案,适合学习!