JAVA类继承问题!

来源:百度知道 编辑:UC知道 时间:2024/06/30 08:43:46
比如有父类为
class a
{ private int x;
public int any(){return 0;}
}
然后有子类b想继承a
我想问,在子类b里,可以不可以把a里的any()方法继承为private或者其他权限呢,就是说子类可以不可以把父类传下来的方法改变权限
第二个问题
class b extends a
{
public int x;
}
可以看到,子类b和父类a都有一个成员变量x,那么在b里,this.x就是指b的x,super.x就是指a的x,那么当我建立一个b类对象时,是不是两个x都有占内存单元啊,就是说两个x不会冲突! 是不是父类的x也被继承到b里了,不会冲突?
感谢高手来指点我这个新手

第一个问题
子类b想继承a ,any()方法只能继承比public更高或相等的权限.
第二个问题
两个x不会冲突,因为b里的x已经被子类重写了.
如果没有重写的话,就是把b里的public int x; 去掉就能继承父类的x了

1.不能 只能提升权限

2.你这样pubkic int x;就会把继承在a里面的那个x覆盖掉了
除非你用super.x;(不过你这里是private 所以也不能使用)

第一个问题不能

第二个问题只建立子类b的内存单元,不会冲突,自己在机器上试一下就知道了,这种问题在实际的项目当中貌似没有什么太大意思,但面试时却会容易被问到