A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 孤独的鸟人 中级黑马   /  2013-5-13 20:24  /  1781 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 孤独的鸟人 于 2013-5-13 22:33 编辑
  1. class Fu
  2. {
  3.         void show()
  4.         {
  5.                 System.out.println("fu show");
  6.         }
  7.         void speak()
  8.         {
  9.                 System.out.println("vb");        
  10.         }
  11. }
  12. class Zi extends Fu
  13. {
  14.         void speak2()
  15.         {
  16.                 System.out.println("java");        
  17.         }
  18.         void show()
  19.         {
  20.                 System.out.println("zi show");
  21.         }
  22.         
  23. }
  24. class ExtendsDemo3
  25. {
  26.         public static void main(String[] args)
  27.         {
  28.                 Zi z=new Zi();
  29.                 z.speak();
  30.         }
  31. }
  32. 如上代码,为什么说子类中有3个方法?
复制代码

评分

参与人数 1技术分 +1 收起 理由
殇_心。 + 1

查看全部评分

8 个回复

倒序浏览
因为子类继承了父类的speak()方法,复写了父类的show()方法,再加上子类独有的speak2()方法,总共是3个方法。
回复 使用道具 举报
子类继承了父类:意味着子类中有了父类的方法和属性;子类特有speak2()方法  子类重写了父类的show()方法  子类中隐含着speak()方法
回复 使用道具 举报
楼上正解
回复 使用道具 举报
在你的代码中,子类继承父类,子类有2个方法,子类继承了父类的2个方法,如果子类和父类的方法都不相同,那么就是4个方法,但是其中SHOW方法父类也拥有,那么子类的SHOW方法就是复写了父类的SHOW方法,可以理解成覆盖,所以子类只有3个方法,希望能帮到你,我也在学习中
回复 使用道具 举报
在使用子类的成员方法时:首先在子类中找,其次在父类中找。找不到,报错。
                      super可以在子类中使用父类的成员方法。
                       
                        子类中存在和父类成员方法同名的这种现象,叫做重写,复写,覆盖。
                        重写(override)和重载(overload)的区别:
                        重载的特点:
                                **在同一类中。
                                **方法名相同,参数列表不同。
                        重写的特点:
                                **要有继承关系。在子父类中
                                **方法的声明相同。(方法名和参数列表都相同)
                                        ***覆盖时,子类方法权限一定要大于等于父类方法权限
                                        ***静态只能覆盖静态。

评分

参与人数 1技术分 +1 收起 理由
殇_心。 + 1

查看全部评分

回复 使用道具 举报
  • class Fu
  • {
  •         void show()      //这里是父类的一个方法 1
  •         {
  •                 System.out.println("fu show");
  •         }
  •         void speak()    //这里是一个方法  2
  •         {
  •                 System.out.println("vb");
  •         }
  • }
  • class Zi extends Fu           //Zi继承了Fu同时也继承了 Fu类的方法
  • {
  •         void speak2()                      //这里是子类自己的方法
  •         {
  •                 System.out.println("java");
  •         }
  •         void show()            //这里是对父类的方法进行了覆写                所以Zi一共有3个方法
  •         {
  •                 System.out.println("zi show");
  •         }
  • }
  • class ExtendsDemo3
  • {
  •         public static void main(String[] args)
  •         {
  •                 Zi z=new Zi();
  •                 z.speak();
  •         }
  • }
  •   这是我的理解 呵呵

评分

参与人数 1技术分 +1 收起 理由
殇_心。 + 1

查看全部评分

回复 使用道具 举报
这个问题太简单了   大家回答的都正确
回复 使用道具 举报
Sword 金牌黑马 2013-5-13 22:24:50
9#
如果问题未解决,请继续追问,如果问题解决了,请点击你的帖子下面的"编辑"重新编辑帖子,将分类改为“已解决”,谢谢合作!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马