黑马程序员技术交流社区

标题: 父类调用子类的方法? [打印本页]

作者: 陈丹阳    时间: 2011-12-31 21:04
标题: 父类调用子类的方法?
本帖最后由 陈丹阳 于 2012-2-22 19:41 编辑

看到毕老师的第十天,可能第六期赶不上了,内容好多。
Object类中调用了Integer.toHexString(hashCode());  好像是调用了它的子类甚至孙类的方法吧。。
我知道这个开发应该不用考虑。
但语法上在别的地方可以这样用的吗? 还是说这个是比较特殊的?
作者: 房宝彬    时间: 2011-12-31 22:18
这个是比较特殊的。但是我想在别的地方也能用。
作者: 刘基军    时间: 2012-1-3 15:06
这只是在Object中,通过其子类,来调用子类的方法而已。
  1. class Dog
  2. {
  3.         public void eat()
  4.         {
  5.             System.out.println(Demo.yourName()+"啃骨头");
  6.         }
  7. }
  8. class Demo extends Dog
  9. {
  10.         public static void main(String[] args)
  11.         {
  12.                         new Dog().eat();
  13.         }      
  14.    
  15.         public static String yourName()
  16.         {
  17.             return "藏獒";
  18.         }       
  19. }
复制代码

作者: 374122761    时间: 2012-1-3 16:18
这只是在Object中,通过其子类,来调用子类的方法而已
{:soso_e100:}
作者: 苏格拉底的弟子    时间: 2012-1-3 16:42
其实就是循环调用其父类吧....  毕竟 java中就支持单继承....
作者: 为梦而战    时间: 2012-1-3 16:44
本帖最后由 为梦而战 于 2012-1-3 17:05 编辑

     想了想,觉的一般情况父类中没有子类的特殊方法。父类是调用不了子类的方法的。你那个说特殊也特殊,因为父类中有子类要用的方法。你的那个代码应该是子类继承了父类的HashCode方法。当子类调用自己的toHexString()的方法时,在参数有又调用了继承过来的HashCode()方法,但是我想的是,一般子类是要按照需要重写一下父类的HashCode()方法,然后调用自己重写后的HashCode()方法,这样更符合需求下的写法。
   
作者: 为梦而战    时间: 2012-1-3 16:57
本帖最后由 为梦而战 于 2012-1-3 17:06 编辑

可能我自己也理解的不到位,望多多交流!
作者: 为梦而战    时间: 2012-1-6 16:12
为梦而战 发表于 2012-1-3 16:57
可能我自己也理解的不到位,望多多交流!

:handshake




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2