黑马程序员技术交流社区
标题:
请教:这种继承的情况是重载吗
[打印本页]
作者:
ysunday
时间:
2013-11-10 22:25
标题:
请教:这种继承的情况是重载吗
class Fu{
private int num;
public int getNum(){
return this.num;
}
//注意这个函数
public int add(int a, int b){
return a + b;
}
}
class Zi extends Fu{
//这句算重载吗
public long add(int a, long b){
return a + b;
}
/*
好像重载是在这个类中有这样的函数
public long add(int a, long b){
return a + b;
}
public int add(int a, int b){
return a + b;
}
两个函数同时存在才算重载吧
*/
public void show(){
System.out.println(getNum());
}
}
复制代码
请能真正确定答案的人回答,不要模糊的答案,老师说这“算”重载,但我觉得不是,谢谢大家
作者:
秦桂胜
时间:
2013-11-10 22:39
是重载,类Zi继承了add(int x,int y)方法。
代码如下
class Fu{
private int num;
public int getNum(){
return this.num;
}
//注意这个函数
public int add(int a, int b){
return a + b;
}
}
class Zi extends Fu{
//这句算重载吗
public long add(int a, long b){
return a + b;
}
/*
好像重载是在这个类中有这样的函数
public long add(int a, long b){
return a + b;
}
public int add(int a, int b){
return a + b;
}
两个函数同时存在才算重载吧
*/
public void show(){
System.out.println(getNum());
}
}
public class test{
public static void main(String[] args){
Zi z=new Zi();
z.add(1, 1);//add(int a, int b)
z.add(1, 1l);
}
}
复制代码
作者:
ysunday
时间:
2013-11-10 23:38
虽然你调用了这两个函数,但是我觉得不是 ,入果 如你所说 ,那么子类中继承了那个方法 ,那么子类也可以继承父类得 getNum,但是很明显,getNum是父类得方法,虽然子类可以访问父类得方法,但我感觉并不等同于子类中拥有这个方法吧
如果继承了getNum那个塔返回的是this.num显然,这个属性是在父类中得到的 ,而父类得这个属性是私有的,这怎么解释
作者:
硬件之家
时间:
2013-11-10 23:59
应该是重载,因为子类继承了父类,子类拥有父类的属性和方法。
作者:
轩辕迪卡
时间:
2013-11-11 08:49
哎,大家觉得学技术为了什么啊?为了搞科学研究吗?就是为了找一份工作嘛!
毫无疑问,这个确实是重载,重载可以重载父类的方法,原因楼上的一些人已经说过了,继承私有变量也能继承,只是不能直接访问,你可以用debug查看继承的对象。
我想说的是,楼主啊,有些知识细节太过钻研没有意义啊,我只要知道这样可以,那样不可以就好了,至于是不是重载, 没有关系吧?真正开发的时候客户也不会关心是不是重载做的吧?
而且我觉得重载这种东西如果自己吃不准最好不要用,到时候自己都不知道这个函数是干什么的了,重载最有用的地方应该就是构造函数。
作者:
ysunday
时间:
2013-11-11 20:25
轩辕迪卡 发表于 2013-11-11 08:49
哎,大家觉得学技术为了什么啊?为了搞科学研究吗?就是为了找一份工作嘛!
毫无疑问,这个确实是重载,重 ...
你说的很对,但是我就是想了解下到底是怎么回事,憋在心里不舒服,不过也谢谢你的提醒 谢谢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2