我们如何确认对象是在java中创建的

时间:2015-05-13 12:22:27

标签: java

我们都知道我们不能实例化一个抽象类 有人说,当创建对象时,会调用构造函数。 但是当我们实例化抽象类的子类时,会调用抽象类构造函数。我相信如果调用构造函数,它并不意味着创建了Object。 我的问题是:我们如何确认对象是否已创建:

public abstract class One
{
    public One()
    {
        System.out.println("One Object Constructor ");
    }

    public void test()
    {
    }

    public void testTwo()
    {
        System.out.println("Test Two");
    }
}

public class Two extends One
{
    public Two()
    {
        System.out.println("This is Two");
    }

    public static void main(String[] args)
    {
        Two t = new Two();
    }
}

输出:

  

一个对象构造函数
  这是两个

1 个答案:

答案 0 :(得分:0)

创建对象/实例时始终会调用构造函数。如果你有一个没有构造函数的类,它实际上会有一个不带参数的构造函数,并在超类中调用类似的无参数构造函数。

此外,所有类必须显式或隐式地调用其超类构造函数(隐式调用仅在超类具有无参数构造函数时才有效),因此您可以确保已调用链中每个类的构造函数

也许你的意思是在One的构造函数中你无法确定实际的实例是否有类One,它也可能是一个子类?如果是这样,你可以使用getClass()来验证,它返回实际的类。