黑马程序员技术交流社区
标题:
关于子父类中函数覆盖的问题
[打印本页]
作者:
zq19910303
时间:
2015-6-23 16:15
标题:
关于子父类中函数覆盖的问题
本帖最后由 zq19910303 于 2015-6-24 12:03 编辑
当子父类中出现同名函数时,子类函数就会将父类函数覆盖掉,也就是说原来的父类上的函数没有了,现在只有子类上的函数的意思吗?当为什么在子类中还是可以用super调用到父类的同名函数? 从打印结果看父类的函数没从内存上消失,那子类何谈将父类地函数覆盖了呢?
class A
{
void show()
{
System.out.println("---------------a");
}
}
class B extends A
{
void show()
{
System.out.println("--------------b");
super.show();
}
}
class Demo
{
public static void main(String[] args)
{
B b=new B();
b.show();
}
}
复制代码
捕获.PNG
(876 Bytes, 下载次数: 20)
下载附件
2015-6-23 16:17 上传
结果
作者:
天若有晴
时间:
2015-6-23 17:03
覆盖也叫重写,是多态的前提,意思是子类也可以将父类的方法重新定义(当然方法名,函数名,参数列表要一样才是覆盖),此时子类就有新的定义;
作者:
天若有晴
时间:
2015-6-23 17:05
覆盖也叫重写,是多态的前提,意思是子类也可以将父类的方法重新定义(当然方法名,函数名,参数列表要一样才是覆盖),此时子类的方法就有新的定义;一般用法是子类中有自己新的的功能,还保留父类原有的功能,(super.方法名())
作者:
wenxueaaa555
时间:
2015-6-23 22:36
覆盖后不是父类的方法没有了,它还存在着,只是说通过子类对象调用时会调用子类重写的方法
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2