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

比如父类中的int i=0;

在他的子类中将int i=1;

测试不可行;

那么请问如果想重写的话要怎么办?

慕姐5730360
浏览 4693回答 5
5回答

乔小欠儿

子类只可以重写父类的方法,但不可以重写父类的变量。但子类可以通过super调用到父类里的public和protected的变量。重写父类的变量也没什么意义啊,你子类要用什么变量自己定义自己使用就好了。

echo_kinchao

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

慕男婶

方法是动态绑定(即编译期不确定,运行期才确定)的,也就是说不是和类型绑定在一起的,运行时,对象是谁就调用谁的方法(对象是子类的对象,那么就调用子类重写后的方法,是父类,就调用父类的方法。);而属性是和类型绑定在一起的,是静态绑定(即编译期已经定了。Person p = new Student();例如上述写法Person是父类型,Student是子类型,假如父类型和子类型里都有 int i 这个属性的话,使用 p.i 将访问父类型的属性i ,而不是子类型的 i 。。从这点儿上来说,属性是不能重写的,即使重写也没有意义啊。。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java