黑马程序员技术交流社区
标题:
关于继承的问题
[打印本页]
作者:
孤独的鸟人
时间:
2013-5-13 20:24
标题:
关于继承的问题
本帖最后由 孤独的鸟人 于 2013-5-13 22:33 编辑
class Fu
{
void show()
{
System.out.println("fu show");
}
void speak()
{
System.out.println("vb");
}
}
class Zi extends Fu
{
void speak2()
{
System.out.println("java");
}
void show()
{
System.out.println("zi show");
}
}
class ExtendsDemo3
{
public static void main(String[] args)
{
Zi z=new Zi();
z.speak();
}
}
如上代码,为什么说子类中有3个方法?
复制代码
作者:
long
时间:
2013-5-13 20:29
因为子类继承了父类的speak()方法,复写了父类的show()方法,再加上子类独有的speak2()方法,总共是3个方法。
作者:
韩秀山
时间:
2013-5-13 20:33
子类继承了父类:意味着子类中有了父类的方法和属性;子类特有speak2()方法 子类重写了父类的show()方法 子类中隐含着speak()方法
作者:
ZhaoYuBetter
时间:
2013-5-13 20:34
楼上正解
作者:
李征
时间:
2013-5-13 20:37
在你的代码中,子类继承父类,子类有2个方法,子类继承了父类的2个方法,如果子类和父类的方法都不相同,那么就是4个方法,但是其中SHOW方法父类也拥有,那么子类的SHOW方法就是复写了父类的SHOW方法,可以理解成覆盖,所以子类只有3个方法,希望能帮到你,我也在学习中
作者:
小臣
时间:
2013-5-13 21:07
在使用子类的成员方法时:首先在子类中找,其次在父类中找。找不到,报错。
super可以在子类中使用父类的成员方法。
子类中存在和父类成员方法同名的这种现象,叫做重写,复写,覆盖。
重写(override)和重载(overload)的区别:
重载的特点:
**在同一类中。
**方法名相同,参数列表不同。
重写的特点:
**要有继承关系。在子父类中
**方法的声明相同。(方法名和参数列表都相同)
***覆盖时,子类方法权限一定要大于等于父类方法权限
***静态只能覆盖静态。
作者:
花开花落总相似
时间:
2013-5-13 21:14
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();
}
}
这是我的理解 呵呵
作者:
赵利斌
时间:
2013-5-13 21:19
这个问题太简单了 大家回答的都正确
作者:
Sword
时间:
2013-5-13 22:24
如果问题未解决,请继续追问,如果问题解决了,请点击你的帖子下面的"编辑"重新编辑帖子,将分类改为“已解决”,谢谢合作!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2