黑马程序员技术交流社区
标题:
多态代码中的函数指向问题?
[打印本页]
作者:
黄诗宾
时间:
2013-3-28 21:18
标题:
多态代码中的函数指向问题?
本帖最后由 黄诗宾 于 2013-3-28 22:00 编辑
abstract class Animal{
public abstract void shout();
public abstract void work();
}
class Dog extends Animal{
public void shout(){
System.out.println("汪汪");
}
public void work(){
System.out.println("看家");
}
}
class AnimalDo{
public void Do(Animal a){ //抽象类不能建立对象,请问括号里的(Animal a)指向哪里,什么意思
a.shout();
a.work();
}
}
class Demo11{
public static void main(String[] args){
AnimalDo ad = new AnimalDo();
ad.Do(new Dog());
复制代码
抽象类不能建立函数
请问类
AnimalDo 函数里的括号
(Animal a)指向哪里 不是父类么?
求解释!
作者:
黑马19我最牛
时间:
2013-3-28 21:29
Animal a 指向的是子类中的对象,父类引用指向子类对象,这是典型的继承多态问题!
作者:
续圆凯
时间:
2013-3-28 21:42
指向的是子类建立的对象。被父类所引用的。
作者:
逸盏清茶
时间:
2013-3-28 21:45
请问括号里的(Animal a)指向哪里,什么意思
在你的这个例子中 Animal a= new Dog();指向的是Animal的子类Dog对象
作者:
luguoyuanf
时间:
2013-3-28 21:53
Animal指向的是父类名 这里跟父类的名称Abstract class Animal一样,a代表的是变量名,可以自己起.
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2