java如何在子类中赋值给父类的变量
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java如何在子类中赋值给父类的变量相关的知识,希望对你有一定的参考价值。
java如何在子类中赋值给父类的变量而其他子类变量值也改变
例如,父类是Test1,,子类为Test2和Test3,,,父类中有个变量public static int a,,如何在Test2中改变a的值,让Test3直接打印a就是Test2中a的值。
父类里的ele属性
如果是public的直接super.ele="abc";
但如果是private的,并有set方法就调用set方法
super.setEle("abc"); 参考技术A 用super关键字啊
比如你父类又一个int的实例变量i
在子类里用
super.i=10;
这样就行
希望对你能有所帮助。本回答被提问者和网友采纳 参考技术B java中通过extends(继承),完成子,父类关系.
子类可以继承父类没有用private修饰的成员变量.
如父类中有一变量:public int a;
那么在子类中,通过语句a=xxx; 就可以给该变量赋值了. 参考技术C public static int a;这是全局变量,不管继不继承只要在text2中写Text1.a = 55;这样就改变了,Test3的打印语句必须在Test2赋值语句后面执行才有效65追问
我的意思是在Test3中直接System.out.println(a)
让a为Test2中的直
追答我知道啊,因为public static int a;这个是全局变量啊,所以在在text2中写Text1.a = 55;执行完后
Text3的System.out.println(a);打印出来的就是55
这样不行,,,我试过了
要不你写个代码给我看看,,,,
追答写好了,可以啊,因为你写的是全局变量其实可以不用继承的,如果不用全局变量的话,test2中的Test1.a = 55改为super.a = 55;一样可以用
这个貌似不行吧,我试过了
java编程,关于父类子类变量赋值问题,和方法调用
Vehicle类的基础上创建一个Tractor(拖拉机)类,他不但拥有journey,wheelNum,loadNum,driveSpeed 四种属性和driveAt()方法,而且还拥有自己的plough(耕地)方法,在该方法中要求能够显示journey, wheelNum, loadNum三个属性的值,在Tractor中覆盖driverAt()方法在这个类中还要创建一个main()方法,分别调用plough()、driveAt方法和Vehicle类的driverAt()方法。
在main方法中用父类实例化子类即可(向下转型——多态)Tractor tra=null;
tra=new Vehicel();
tra.plugh();
tra.driveAt(50)追问
Vehicle v=new Tractor();
v.plugh();
v.driveAt(50);
我这么写的话,v能调用子类的plugh和driveAt方法么,编译时候老是有无法识别字符是设么意思啊
错误具体出现在哪行有提示的,请复制具体错误信息看看;
你的源码中Vehicel.v(好像多了个点);
这样写,v只能调用子类覆写的driveAt();
Vehicle v=new Tractor();
v.plugh();
v.driveAt(50); //调用的实际为子类覆写过的方法
谢谢啊,我将程序最后三行改为
Tractor tra=new Tractor();
tra.plugh();
tra.driveAt(50);有3个错误都是cannot resolve symbol。分别是第二个类Tractor中的driveSpeed=20;driveSpeed=speed;还有最后的tra.plugh,指向中间的点,说是不能识别method 披plugh()。如果
把所有空格删了,还有标点符号都改成半角的
以上是关于java如何在子类中赋值给父类的变量的主要内容,如果未能解决你的问题,请参考以下文章