所谓多态:
生活中,比如跑的动作,小猫、小狗和大象,跑起来是不一样的。再比如飞的动作,昆虫、鸟类和飞机,飞起来也是不一样的。可见,同一行为,通过不同的事物,可以体现出来的不同的形态
1)成员变量:编译看左边(父类),运行看左边(父类)
所有的成员变量取决于编译时类型
2)成员方法:编译看左边(父类),运行看右边(子类)
所有的成员方法取决于运行时类型
3)静态方法:编译看左边(父类),运行看左边(父类)
所有的静态方法取决于编译时类型
也就是说, 多态只适用于成员方法,只有在运行期间才能体现
class Animal{
String color;
int life = 0;
public static void eat(){
System.out.println("eat something!");
}
}
class Cat extends Animal{
int life = 9;
public static void eat(){
System.out.println("eat fish");
}
}
class Dog extends Animal{
int life = 10;
public static void eat(){
System.out.println("eat meat");
}
}
public class PolymorphismTest{
public static void main(String[] args){
Animal a1 = new Cat();
Animal a2 = new Dog();
System.out.println("***成员变量***");
System.out.println("Cat.leg: "+a1.life);
System.out.println("Dog.leg: "+a2.life);
System.out.println("***静态方法***");
a1.eat();
a2.eat();
}
}
虚拟机又炸了,我心态也炸了,我不会再在弄软件上浪费时间了,没那个精力,老师他都不知道怎么解决