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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ysunday 中级黑马   /  2013-11-10 22:25  /  1290 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. class Fu{
  2.         private int num;

  3.         public int getNum(){
  4.                 return this.num;
  5.         }
  6.         //注意这个函数
  7.         public int add(int a, int b){
  8.                 return a + b;
  9.         }
  10. }
  11. class Zi extends Fu{
  12.         //这句算重载吗
  13.         public long add(int a, long b){
  14.                 return a + b;
  15.         }
  16.         /*
  17.         好像重载是在这个类中有这样的函数
  18.         public long add(int a, long b){
  19.                 return a + b;
  20.         }

  21.         public int add(int a, int b){
  22.                 return a + b;
  23.         }
  24.         两个函数同时存在才算重载吧
  25.         */
  26.         public void show(){
  27.                 System.out.println(getNum());
  28.         }
  29. }
复制代码
请能真正确定答案的人回答,不要模糊的答案,老师说这“算”重载,但我觉得不是,谢谢大家

评分

参与人数 1技术分 +1 收起 理由
狼王 + 1 赞一个!

查看全部评分

5 个回复

倒序浏览
是重载,类Zi继承了add(int x,int y)方法。
代码如下
  1. class Fu{
  2.         private int num;

  3.         public int getNum(){
  4.                 return this.num;
  5.         }
  6.         //注意这个函数
  7.         public int add(int a, int b){
  8.                 return a + b;
  9.         }
  10. }
  11. class Zi extends Fu{
  12.         //这句算重载吗
  13.         public long add(int a, long b){
  14.                 return a + b;
  15.         }
  16.         /*
  17.         好像重载是在这个类中有这样的函数
  18.         public long add(int a, long b){
  19.                 return a + b;
  20.         }

  21.         public int add(int a, int b){
  22.                 return a + b;
  23.         }
  24.         两个函数同时存在才算重载吧
  25.         */
  26.         public void show(){
  27.                 System.out.println(getNum());
  28.         }
  29. }
  30. public class test{
  31.          public static void main(String[] args){
  32.                  Zi z=new Zi();
  33.                  z.add(1, 1);//add(int a, int b)
  34.                  z.add(1, 1l);
  35.          }
  36. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
狼王 + 1

查看全部评分

回复 使用道具 举报
虽然你调用了这两个函数,但是我觉得不是 ,入果 如你所说 ,那么子类中继承了那个方法 ,那么子类也可以继承父类得 getNum,但是很明显,getNum是父类得方法,虽然子类可以访问父类得方法,但我感觉并不等同于子类中拥有这个方法吧
如果继承了getNum那个塔返回的是this.num显然,这个属性是在父类中得到的 ,而父类得这个属性是私有的,这怎么解释

评分

参与人数 1技术分 +1 收起 理由
狼王 + 1

查看全部评分

回复 使用道具 举报
应该是重载,因为子类继承了父类,子类拥有父类的属性和方法。
回复 使用道具 举报
哎,大家觉得学技术为了什么啊?为了搞科学研究吗?就是为了找一份工作嘛!
毫无疑问,这个确实是重载,重载可以重载父类的方法,原因楼上的一些人已经说过了,继承私有变量也能继承,只是不能直接访问,你可以用debug查看继承的对象。
我想说的是,楼主啊,有些知识细节太过钻研没有意义啊,我只要知道这样可以,那样不可以就好了,至于是不是重载, 没有关系吧?真正开发的时候客户也不会关心是不是重载做的吧?
而且我觉得重载这种东西如果自己吃不准最好不要用,到时候自己都不知道这个函数是干什么的了,重载最有用的地方应该就是构造函数。
回复 使用道具 举报
轩辕迪卡 发表于 2013-11-11 08:49
哎,大家觉得学技术为了什么啊?为了搞科学研究吗?就是为了找一份工作嘛!
毫无疑问,这个确实是重载,重 ...

你说的很对,但是我就是想了解下到底是怎么回事,憋在心里不舒服,不过也谢谢你的提醒 谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马