我们都知道我们不能实例化一个抽象类 有人说,当创建对象时,会调用构造函数。 但是当我们实例化抽象类的子类时,会调用抽象类构造函数。我相信如果调用构造函数,它并不意味着创建了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();
}
}
输出:
一个对象构造函数
这是两个
答案 0 :(得分:0)
创建对象/实例时始终会调用构造函数。如果你有一个没有构造函数的类,它实际上会有一个不带参数的构造函数,并在超类中调用类似的无参数构造函数。
此外,所有类必须显式或隐式地调用其超类构造函数(隐式调用仅在超类具有无参数构造函数时才有效),因此您可以确保已调用链中每个类的构造函数
也许你的意思是在One的构造函数中你无法确定实际的实例是否有类One,它也可能是一个子类?如果是这样,你可以使用getClass()来验证,它返回实际的类。