java对于抽象类的getClass()方法

java对于抽象类的getClass()方法

背景:

在阅读flink1.14的源代码的时候,有一段代码的getClass()方法输出的结果很让我意外。在此记录一下,代表我经历过
首先定义一个抽象类,在这个无参的构造函数中调用了一个getClass().getName()的方法获取当前的类名

public abstract class Parent {
    public Parent(){
        System.out.println(getClass().getName());
    }
}

新建一个主类App,在里面新建一个Parent对象

public class App {
    public static void main(String[] args) {
        new Parent(){};
    }
}

因为这个Parent是一个抽象类,所以在new这个对象的后面加上一个{}

输出结果为:
com.test.App

看到这个结果的时候,我当时觉得很奇怪,因为在我的理解中,getClass().getName()这个方法写在Parent类的里面,所以输出的结果应该为com.test.Parent才对。

后面,我新建了一个如下所示的类(非抽象类),该类中继承了Parent

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值