标题: 关于子父类的小问题 帮帮忙 [打印本页] 作者: 张吉日 时间: 2012-8-8 20:49 标题: 关于子父类的小问题 帮帮忙 刚学java 半个月 有个小问题 希望大家帮我解除疑惑..
想明白其中的道理???
class Fu
{
public void demo(){
}
}
class Zi extends Fu
{
public void demo(){
System.out.print();
}
}
class Test
{
public void hdd(Fu f){
f.demo
}
}
class TestDemo
{
public static void main(String [] args){
Test t = new Test();
//t.hdd(new Fu);
t.hdd(new Zi()); // 我提出的问题行???????????????!!!!!!!!!!!!!@@@@
}
}
/*
问题那行在文中标出 ——>new Zi()是一个多态,原函数是Fu f = new Zi();
那么Zi z = new Zi();我说这个new Zi()是指的子类中的方法不行吗?还是要根据hdd方法中的类型参数来判断?
*/作者: 尤洋 时间: 2012-8-8 21:44
你的问题 问的有些古怪, “我说这个new Zi()是指的子类中的方法不行吗?” new Zi()是新建的一个子类对象,而不是方法
另外 public void hdd(Fu f){f.demo } 方法中 参数列表里 是 父类 类型变量 f,方法体中调用demo方法。
所以执行 t.hdd(new Zi()); 是没有问题,你自己不也是说 Fu f = new Zi();是多态么,父类引用指向子类对象,理解多态了的话 这个问题其实就不算是问题了