此代码在运行时显示错误:
class Animal {
Animal object1 = new Animal();
public static void main(String[] args) {
Animal obj = new Animal();
}
}
Run Code Online (Sandbox Code Playgroud)
这是与Animal obj = new Animal();main方法中注释掉的这一行略有不同的代码.此代码显示没有运行时错误.
class Animal {
Animal object1 = new Animal();
public static void main(String[] args) {
// Animal obj = new Animal();
}
}
Run Code Online (Sandbox Code Playgroud)
这是怎么造成的,我该如何解决?我正在使用命令提示符来运行此代码.
在这里,我宣布同一类中的类动物实例.在c中它被认为是一个错误:
struct demo{
int anyvar;
struct demo anyvar1;
};
Run Code Online (Sandbox Code Playgroud)
因为它应该是一个无限的声明循环.
然后,为什么Java中允许这个代码?
class Animal{
Animal object1 = new Animal();
public static void main(String[] args)
{
Animal obj = new Animal();
obj.dostuff();
}
public void dostuff()
{
System.out.println("Compiles");
object1.dostuff();
}
public void keepdoingstuff()
{
System.out.println("Doing Stuff...");
object1.keepdoingstuff();
}
}
Run Code Online (Sandbox Code Playgroud) 这是我们如何覆盖java中的main函数....
public class animaltest
{
public static void main(String[] args)
{
horse h = new horse();
h.eat();
}
}
public class inheritmain extends animaltest
{
public static void main(String[] args)
{
System.out.print("main overrided");
}
}
Run Code Online (Sandbox Code Playgroud)
但重写主要的好处是什么?