Java 是否可以在不引用特定类的情况下创建对象,如下所示?
在这段代码中,Java 是否可以在不引用特定类的情况下创建对象,如下所示?,java,class,object,Java,Class,Object,在这段代码中,objectobj=newobject()创建对象“obj”时没有遵循传统的“ClassName objName=new ClassName();”惯例,我看到的大多数惯例都是使用类。我对Java非常陌生,不知道如果不输出编译时错误或其他东西,它是如何工作的 public class Sample { public void writeMe(Object obj){ System.out.println("Object"); }
objectobj=newobject()代码>创建对象“obj”时没有遵循传统的“ClassName objName=new ClassName();”
惯例,我看到的大多数惯例都是使用类。我对Java非常陌生,不知道如果不输出编译时错误或其他东西,它是如何工作的
public class Sample {
public void writeMe(Object obj){
System.out.println("Object");
}
public void writeMe(String s){
System.out.println("String");
}
public static void main(String[] args){
Sample s = new Sample();
Object obj = new Object();
s.writeMe(obj);
}
}
可以使用这种语法实例化对象,还是这是一个特定的用例
Object obj = new Object();
ClassName objName = new ClassName();
它们遵循相同的模式Object
是类的名称,正如ClassName
是。在上述内容之后,obj
表示类object
的对象objName
引用类ClassName
的对象
Object
恰好内置于该语言中,并且它恰好是所有其他类的祖先,但这两个事实都与这些声明的语法无关。它确实遵循ClassName objName=new ClassName()代码>约定。在本例中,类名是,这是一个特定的类
实际上没有一个名为Banana{}
的类?@SomilVarshney:不。你不能。@LouisWasserman所以我猜对象是超类这一事实与它有关?还有,为什么像objectobj=newstring()代码>编译没有任何错误?这里唯一相关的是对象是。也就是说,每个类的祖先都允许您编写对象o=new ClassName()
。