结果是
5………………5
5
======================================
class Fu
{
int num=4 ;//private
}
class Zi extends Fu
{
int num =5 ;
void show()
{
System.out.println(super.num); //这时的输出结果就是父类中的值了
}
}
class ExtendsDemo2
{
public static void main(String[] args)
{
Zi z= new Zi();
System.out.println(z.num+"..........."+z.num);
z.show();
}
}
结果是
5………………5
4
作者: 黑马-王言龙 时间: 2012-7-12 14:56
成员变量在多态调用时,new谁就调用谁的成员变量。
new Zi();打印的是Zi类的num,两个都是。
继承中,除了private修饰的成员变量外,同名变量可以看成是子类的覆盖父类的。作者: 苑占丽 时间: 2012-7-12 15:09
class Fu
}作者: 尹善波 时间: 2012-7-12 16:47
class Fu
{
//Fu(){} **在类中没有构造函数的情况下系统会自动默认创建一个空的构造函数
int num=4 ;//private
}
class Zi extends Fu
{
//Zi() **在类中没有构造函数的情况下系统会自动默认创建一个空的构造函数
//{ super();} 在子类中的构造函数里第一行默认的有一个隐式super语句,在本例中隐含的
//super访问隐含的父类,不起作用
int num =5 ;
void show()
{
System.out.println(num);
}
}
class ExtendsDemo2
{
public static void main(String[] args)
{
Fu f= new Zi();//加上这句构成了多态中成员变量的创建,
//特点是:无论编译和运行都参考左边,
Zi z= new Zi();//这个是成员函数的多态形式,特点是:编译看左边,运行看右边
z.show(); //也就是说这里没有覆盖的发生
System.out.println(z.num+"..........."+f.num);