为了账号安全,请及时绑定邮箱和手机立即绑定

子类有方法的重写,请问有没有属性的重写?比如修改父类中的变量参数

子类有方法的重写,请问有没有属性的重写?比如修改父类中的变量参数

慕姐5730360 2015-12-18 16:47:04
比如父类中的int i=0;在他的子类中将int i=1;测试不可行;那么请问如果想重写的话要怎么办?
查看完整描述

5 回答

已采纳
?
乔小欠儿

TA贡献18条经验 获得超15个赞

子类只可以重写父类的方法,但不可以重写父类的变量。但子类可以通过super调用到父类里的public和protected
的变量。

重写父类的变量也没什么意义啊,你子类要用什么变量自己定义自己使用就好了。

查看完整回答
反对 回复 2015-12-18
?
echo_kinchao

TA贡献600条经验 获得超86个赞

你可以动态赋值变量的方法试试改变他的内容

查看完整回答
反对 回复 2015-12-21
?
慕男婶

TA贡献98条经验 获得超73个赞

方法是动态绑定(即编译期不确定,运行期才确定)的,也就是说不是和类型绑定在一起的,运行时,对象是谁就调用谁的方法(对象是子类的对象,那么就调用子类重写后的方法,是父类,就调用父类的方法。);

而属性是和类型绑定在一起的,是静态绑定(即编译期已经定了。

Person p = new Student();

例如上述写法

Person是父类型,Student是子类型,

假如父类型和子类型里都有 int i 这个属性的话,

使用 p.i 将访问父类型的属性i ,而不是子类型的 i 。。

从这点儿上来说,属性是不能重写的,即使重写也没有意义啊。。

查看完整回答
反对 回复 2015-12-18
  • 5 回答
  • 0 关注
  • 4742 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信