//定义一个Animal类,Cat类继承Animal。 public class Animal { String str; public void voice(){ System.out.println("普通动物的叫声!"); } } class Cat extends Animal{ public void voice(){ System.out.println("喵喵喵"); } public void catchMouse(){ System.out.println("抓老鼠"); } }
public class Test { public static void testAnimalVoice(Animal a){ a.voice(); } public static void main(String[] args){ Animal a = new Cat(); testAnimalVoice(a); } }
Animal a = new Cat();
相当于
Cat c = new Cat(); Animal a = c;
按我的理解:加载Cat类,建立局部变量c用于存放地址,然后新建了一个以Cat为模版的对象,把这个对象的地址赋给c;
加载Animal类,建局部变量a,把c的值赋给a。
我的问题:把c的值赋给a的过程中为何需要继承,假如Cat类没有继承Animal类,Animal a = c照样是局部变量的值传递啊,为何赋不了值???!!!
扬帆_起航
慕的地6079101
蜂之谷
相关分类