java子类能继承父类属性吗?

下面程序为什么输出12,而不是-6,想破脑壳都想不通,大神快救救我啊~~~ public class A { int i = 12; } class B extends A { int i = -6; public static void main(String[] args) { A xx = new B(); System.out.println(xx.i); } }

子类继承父类的所有(包括私有属性),但是却不能调用父类的私有属性,父类私有的属性方法等子类都不能调用,所以子类里用的getName()在父类里是public的。这是java的一个特性,叫封装
这样可以么?
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-02-29
向上转型时
调用的是父类的属性
1.如果给子类i提供get和set
通过get调用的自然是子类的
2.如果给父类和子类分别提供get和set,调的仍然是子类的,因为方法被重写
第2个回答  2019-05-03
这要看需要和情况了
如果你把子类属性定义成私有成员变量
通过父类就调用不了
如果子类属性public,那就不需要了,一般不这么干
相似回答
大家正在搜