Java 如何在其中创建子类对象';什么是基类?
它很简单,因为您可以在相同类类型的类中创建对象,也可以创建其子类类型。它很简单,因为您可以在相同类类型的类中创建对象,您也可以创建它的子类类型。您的问题的关键似乎是您正在其基类Java 如何在其中创建子类对象';什么是基类?,java,Java,它很简单,因为您可以在相同类类型的类中创建对象,也可以创建其子类类型。它很简单,因为您可以在相同类类型的类中创建对象,您也可以创建它的子类类型。您的问题的关键似乎是您正在其基类arijit的main方法中创建amit类的实例,您想知道这是怎么可能的 为什么不可能呢?您的main方法按名称引用子类,因此从这个角度看,它与任何其他类都一样。如果您愿意,也可以在非静态成员中执行 在体系结构上,如果基类知道其子类的详细信息(如名称),则通常表明您的结构存在问题;这不是通常的做法。您的问题的关键似乎是您正
arijit
的main
方法中创建amit
类的实例,您想知道这是怎么可能的
为什么不可能呢?您的main
方法按名称引用子类,因此从这个角度看,它与任何其他类都一样。如果您愿意,也可以在非静态成员中执行
在体系结构上,如果基类知道其子类的详细信息(如名称),则通常表明您的结构存在问题;这不是通常的做法。您的问题的关键似乎是您正在其基类
arijit
的main
方法中创建amit
类的实例,您想知道这是怎么可能的
为什么不可能呢?您的main
方法按名称引用子类,因此从这个角度看,它与任何其他类都一样。如果您愿意,也可以在非静态成员中执行
在体系结构上,如果基类知道其子类的详细信息(如名称),则通常表明您的结构存在问题;这不是通常的做法。也许您需要区分编译时和运行时 在编译时,arijit的结构是众所周知的。在类的中间,主要使用子类并不重要,因为这是运行时的事情
但是我承认,Java编译器并没有那么愚蠢:)也许您需要区分编译时和运行时 在编译时,arijit的结构是众所周知的。在类的中间,主要使用子类并不重要,因为这是运行时的事情
但是我承认,Java编译器并没有那么愚蠢:)当你编译你的程序时,会形成两个.class文件,即arijit.class和amit.class。
因此,当您的程序被解释时,解释器同时知道.class文件,因此您可以创建这样的对象。当您编译程序时,会形成两个.class文件,即arijit.class和amit.class。
所以当你的程序被解释时,解释器知道.class文件,因此您可以创建这样的对象。无法在父类中创建子类的位置在构造函数中。无法在父类中创建子类的位置在构造函数中。也许您可以为您的问题添加更多信息。从最上面的一行和一些源代码来看,不清楚您的问题到底是什么。也许您可以在问题中添加更多信息。仅从顶行和一些源代码来看,不清楚您的问题到底是什么。
class arijit
{
public static void main(String args[])
{
System.out.println("Base class main");
amit ab=new amit(); //how is it possible as the sub class object also holds base class
ab.a();
ab.ma();
}
public void m()
{
System.out.println("Base class method");
}
}
class amit extends arijit
{
public void a()
{
System.out.println("Sub Class method");
m();
}
}