为什么这里没有用到内部类,却在调用age的时候加了Animal.呢?

package com.imooc;


public class Animal {

public int age = 10;

public String name;

public void eat(){

System.out.println("年龄:"+age+"动物具有吃东西的能力!");

}

public Animal(){

System.out.println("Animal类执行了");

age = 20;

}


}




package com.imooc;


public class Dog extends Animal {

public void eat(){

System.out.println("年龄:"+age+"狗具有吃东西的能力!");

}

public Dog(){

System.out.println("Dog类执行了");

}


}



package com.imooc;


public class Initail {


public static void main(String[] args) {

// TODO Auto-generated method stub

        Animal animal = new Animal();

        System.out.println("animal age:"+animal.age);

Dog dog = new Dog();

        dog.age = 10;

        dog.name = "xiaohua";

        dog.eat();

}

http://img.mukewang.com/5742f83a000131a908170372.jpg

sorgs
浏览 1404回答 2
2回答

惟愿_无事常相见

你标记问题的的前一行new出来一个Animal对象,age是定义在Animal类中的非静态的public变量,只能通过创建对象调用。

qq_残局_03390168

你定义的age是非静态变量,调用其他类的非静态变量和非静态方法要用该类实例化的对象去调用,调用静态变量和方法则用该类的类名进行调用!!
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java