黑马程序员技术交流社区
标题:
关于继承的一个小问题
[打印本页]
作者:
下雨天
时间:
2013-7-16 01:56
标题:
关于继承的一个小问题
有段代码是关于多态的:
XT a=new XL();
System.out.println(a.name);
XT是父类,XL 继承了XT,我像上面那样产生一个对象 我感觉这个a对象是子类的对象 但为什么输出的是父类的name呢
作者:
wedge
时间:
2013-7-18 13:44
父类的对象,它的内容可以是这个父类的,也可以是它的子类的,当子类拥有和父类同样的函数,当使用这个对象调用这个函数的时候,定义这个对象的类(也就是父类)里的同名函数将被调用,当在父类里的这个函数前加virtual关键字,那么子类的同名函数将被调用。
作者:
Mr_Free
时间:
2013-7-18 19:09
楼主 为什么我实验了下,还是执行子类的方法? 我想看看你的完整代码。
你可以看下我的代码:
package wenti;
public class jicheng {
public static void main(String[] args){
dongwu cat =new cat();
cat.eat();
}
}
class dongwu{
public void eat(){
System.out.println("dongwu eat");
};
}
class cat extends dongwu{
public void eat(){
System.out.println("cat eat fish");
};
}
复制代码
作者:
一个铃,一颗珠
时间:
2013-7-27 00:17
如果出现你说的情况会不会在写XL类时用了super关键字,调用了父类的name
作者:
jrry
时间:
2013-7-30 08:59
应该是三楼说的那样,昨晚看think in java 刚好看到多态
作者:
坚持。
时间:
2013-7-31 21:08
这里是多态了, 你这样想一天你穿着你爸爸的工作服走在你爸爸的岗位上,别人不认识你爸爸的人,看见你穿了你爸爸的工作服,是不是默认你就是你爸爸,把你爸爸的工作交给你做,不知道我这样比喻你看懂了没有
作者:
不具名、悲伤
时间:
2013-8-2 19:32
你在子类中创建了对象a吗,如果没有的话,肯定就是继承的父类中的,子类中你有没有定义a 的属性呢?
作者:
Mr_Free
时间:
2013-8-6 18:38
多态里面 看你调用的应该是一个成员变量,
如果你是: 父类 对象名 = new 子类;
左边 右边
这种形式写的话,返回的值应该是父类的变量值。
在多态中,调用成员变量,静态成员函数,他的内容都是参考引用变量所属的类。说直白点就是看左边。
非静态成员函数在调用时,看左边,就是看看父类有没有这个方法,有就通过,没有就编译失败,运行时看右边,就是实际上调用的是子类的方法,可以理解成子类覆盖父类方法。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2