//请真正能深入了解java语法的朋友进来说两句!!!!!
public class aa
{
public int num=1;
}
class bb extends aa
{
public String num= "真的爱你 ";
public static void main(String args[])
{
bb t=new bb();
System.out.println(t.num);
}
}
/***************************************************************************
各位朋友,如上程序所示,aa为bb 的超类,如果在同一个类中定义两个同名,但不同类型的变量,
java编译时都不会成功.但上面的这个程序例外.
也就是说同时存在int num和string num 两个变量,
我想请教的是,如何在bb类中获得int num 的值呢(t.num是string num 的值)?
****************************************************************************/
------解决方案--------------------关注
------解决方案--------------------aa a = new bb();
System.out.println(a.num);
------解决方案--------------------aimer311是对的
bb t=new bb(); //t就是bb的实例,t.num自然就是引用t的变量了
------解决方案--------------------应该这个叫重载吧。
所以不会发生错误。
------解决方案--------------------System.out.println(Test.num);
------解决方案--------------------这没什么以外的。。。。
类的继承是允许父类与子类中同名变量的,但使用过程中是以子类变量为准的:
所以
aa a1 = new bb();
System.out.print(a1.num);// "真的爱你 ";
bb b1 = new bb();
System.out.print(b1.num);// "真的爱你 ";
aa a2 = new aa();
System.out.print(a2.num);// 1
bb b2 = new aa();//错误用法
------解决方案--------------------要想调用大aa里面的int num
在bb里面使用super.num。就ok了!
------解决方案--------------------先创建aa类的对象,就能访问了。
------解决方案-------------------- daniel_kaka兄,不要误导别人好吧?
aa a1 = new bb();
System.out.print(a1.num);会输出 "真的爱你 "?
------解决方案--------------------super.num就OK
------解决方案-------------------- 在图形图像里,如何将float 型数据转化成sring类型阿
------解决方案--------------------呵呵,测试了一下,确实是 AA a = new BB() 确实输出AA里面定义的变量
------解决方案--------------------虽然super.num就是父类的变量,但是只能在构造器中使用,你可以new 一个父类对象,通过对象调用num的值!
------解决方案--------------------这样改下
public class aa {
public int num = 1;
public static void main(String... strings) {
bb p = new bb();
System.out.println( "num= " + ((aa) p).num);
System.out.println( "num= " + p.num);
}
}
class bb extends aa {
public int num = 8;
public static void main(String args[]) {
bb t = new bb();
System.out.println(t.num);
}
}
//结果是
num=1
num=8
////////////////////////////
这说明父类、子类的字段不是放在一个空间中,子类不会覆盖父类,子类的实例以子类的面孔出现的时候调用的是子类的该字段,以父类的面孔出现的时候调用的是父类的该字段。两者井水不犯河水。
这跟方法有区别,方法从来都是子类覆盖父类。不管子类的实例以什么面孔出现调用的都是子类的方法
------解决方案--------------------