子类可以继承父类中非private的属性。你new 了一个B对象xx,但是声明为父类A类型,所以,调用xx.i的时候实际上是访问了父类的属性值
能的
1、除了JAVA中,子类继承父类的所有方法和属性(构造方法要用关键字super([参数])调用)
另外,当父类的方法或属性被声明为private(私有的)时,子类也是不可以继承的。
2、继承是JAVA中一个重要的特色,便于程序的编写,提高代码的重用性。
子类继承父类的所有(包括私有属性),但是却不能调用父类的私有属性,父类私有的属性方法等子类都不能调用,所以子类里用的getName()在父类里是public的。这是java的一个特性,叫封装
这样可以么?
向上转型时 调用的是父类的属性
1.如果给子类i提供get和set 通过get调用的自然是子类的
2.如果给父类和子类分别提供get和set,调的仍然是子类的,因为方法被重写
哥你这个是声明的抽象对象吧 你创建 A new B 干嘛 直接 B xx = new B();