黑马程序员技术交流社区
标题:
名称屏蔽
[打印本页]
作者:
刘小峰
时间:
2011-12-27 14:33
标题:
名称屏蔽
本帖最后由 流氓l老醯 于 2011-12-27 16:44 编辑
如果一个java基类拥有某个已被多次重载的方法名称,那么在导出类中重新定义该方法名称,是否会屏蔽其基类中的某个版本;重载机制还能不能正常工作{:soso_e132:}
作者:
刘基军
时间:
2011-12-27 14:45
导出类--是子类的意思吧?!
class Person
{
void print(int i)
{
System.out.println(i);
}
void print(int i,int j)
{
System.out.println(i+j);
}
}
class Student extends Person
{
public void print(int i,int j)
{
System.out.println(i-j);
}
}
class Test
{
public static void main(String [] args) throws Exception
{
Student s = new Student();
s.print(8,5);//输出:3
s.print(0);//输出:0
}
}
复制代码
作者:
刘建宇
时间:
2011-12-27 15:20
重载机制是能正常工作的,如果子类覆盖了父类中的这个方法,用子类对象的引用调用该方法,会执行子类的这个方法,用父类对象的引用调用该方法会执行父类的方法,或者是父类的引用指向子类的对象,这是就多态了,编译要看左边,运行就要看右边了,意思就是如果父类中有该方法,编译通过,运行时却走的是子类的方法代码
作者:
王昌盛
时间:
2011-12-27 15:28
什么是导出类
同楼上,如果是子类的意思的话
看子类中方法与父类中方法的参数列表(参数的个数,类型)是否相同,若相同就是方法的覆写,也就是屏蔽掉了原来的方法,若方法的参数列表不同,构成方法的重载,重载机制正常工作
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2