Java 如何在方法运行时获得当前方法的Method(实例)

Java 如何在方法运行时获得当前方法的Method(实例),第1张

Foible 朋友的说法不对。

B b=new B(); 这种方式,实际上是实例化了子类的对象,注意:内存中还是子类对象。

((A)b)m(); 表面上看起来是父类对象了,但是由于内存中是子类对象,所以调用的还是子类方法

A b=new B();

bm();

这种方法和你写的实际是一个效果,虽然上溯造型到了父类,由于子类重写了父类的方法,调用的还是子类的方法(也就是所:方法的实现,最后是在子类中实现的)。

所以,总结如下:

如果子类没有重写父类的方法,调用父类的方法的时候,实际上是去父类的内存中实现,可以调用父类方法。

如果子类重写了父类的方法,那么,你虽然上溯造型到了父类,由于内存还是子类,该方法的实现还是在子类,所以用实例化的对象是调用不到父类的,这种情况下,只能用super关键字。

用static的情况不讨论的情况下不讨论是这样的,不知道到您是否不满意,不满意的话可以发消息继续讨论。

啥也不说了直接看代码

import java lang management ManagementFactory;

import sun management OperatingSystemMXBean;

public class Test {

public static void main(String[] args) {

OperatingSystemMXBean o b = (OperatingSystemMXBean) ManagementFactory getOperatingSystemMXBean();

System out println( 系统物理内存总计 + o b getTotalPhysicalMemorySize() / / + MB );

System out println( 系统物理可用内存总计 + o b getFreePhysicalMemorySize() / / + MB );

}

}

ManagementFactory getOperatingSystemMXBean()返回的是java lang management里面的OperatingSystemMXBean

我们要用的是 sun management OperatingSystemMXBean;

在java类库中可以查到

public abstract Interface sun management OperatingSystemMXBean extends java lang management OperatingSystemMXBean

所以我们可以强制转换一下

jdk 下的磁盘使用情况例子:

import java io File;

/

jdk 下的磁盘使用情况例子

/

public class Diskfree {

public static void main(String[] args) {

File[] roots = File listRoots();//获取磁盘分区列表

for (File file : roots) {

System out println(file getPath() + 信息如下: );

System out println( 空闲未使用 = + file getFreeSpace() / / / + G );//空闲空间

System out println( 已经使用 = + file getUsableSpace() / / / + G );//可用空间

System out println( 总容量 = + file getTotalSpace() / / / + G );//总空间

System out println();

}

}

lishixinzhi/Article/program/Java/hx/201311/26599

以上就是关于Java 如何在方法运行时获得当前方法的Method(实例)全部的内容,包括:Java 如何在方法运行时获得当前方法的Method(实例)、java获得当前系统内存及硬盘使用情况、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9639594.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存