如何在静态类创建非静态对象?怎么在静态方法里引用 非静态子类 的方法???
代码如下,表情位置编译错误,Dog是Animal的一个非静态子类,那么如何在静态的main方法里创建Dog对象呢?上面是第一个问题,第二个问题:如何调用非静态子类里的非静态方法roar()???新手请多赐教
package 多态2;
public class Animal
{
int i;
public void roar()
{
System.out.println("Ruff!");
}
public class Dog extends Animal
{
public void roar()//静态方法不能被继承吗?对,也不能被覆盖,一般专业来说叫做被隐藏
{
System.out.println("I am a dog!");
super.roar();//可以在子类方法中利用super引用父类方法
}
}
public static void main(String args[])//这里如果用static ,表示静态方法,则其在类加载时就会分配内存,就是执行到这个类时,同时分配了内存,而类里面还有
{ //还有非静态成员,其必须在类的对象产生时才会分配内存,再通过类的对象去访问,也就意味着如果用dog a=new dog(),计算机在内存中找不到dog
//定义的变量没有使用
Dog a=new Dog();这里编译错误
}
}