java子类能继承父类属性吗?
下面程序为什么输出12,而不是-6,想破脑壳都想不通,大神快救救我啊~~~publicclassA{inti=12;}classBextendsA{inti=-6;pub...
下面程序为什么输出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);
}
} 展开
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);
}
} 展开
6个回答
展开全部
子类可以继承父类中非private的属性。你new 了一个B对象xx,但是声明为父类A类型,所以,调用xx.i的时候实际上是访问了父类的属性值
更多追问追答
追问
虽然声明了父类的引用,但我实例化的是子类的对象啊
追答
这么说吧,你将父类声明为private,编绎也会报错,因为当你声明为A类型的时候,java虚拟机就会认为实例化对象为一个A类型的对象,这情况下只能访问A中的成员变量和方法,这和List list = new ArrayList()是类似的。
展开全部
能的
1、除了JAVA中,子类继承父类的所有方法和属性(构造方法要用关键字super([参数])调用)
另外,当父类的方法或属性被声明为private(私有的)时,子类也是不可以继承的。
2、继承是JAVA中一个重要的特色,便于程序的编写,提高代码的重用性。
1、除了JAVA中,子类继承父类的所有方法和属性(构造方法要用关键字super([参数])调用)
另外,当父类的方法或属性被声明为private(私有的)时,子类也是不可以继承的。
2、继承是JAVA中一个重要的特色,便于程序的编写,提高代码的重用性。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
子类继承父类的所有(包括私有属性),但是却不能调用父类的私有属性,父类私有的属性方法等子类都不能调用,所以子类里用的getName()在父类里是public的。这是java的一个特性,叫封装
这样可以么?
这样可以么?
追问
你说错了吧,1.子类继承父类所有属性,除了私有属性 2.我没有进行封装
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
向上转型时 调用的是父类的属性
1.如果给子类i提供get和set 通过get调用的自然是子类的
2.如果给父类和子类分别提供get和set,调的仍然是子类的,因为方法被重写
1.如果给子类i提供get和set 通过get调用的自然是子类的
2.如果给父类和子类分别提供get和set,调的仍然是子类的,因为方法被重写
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
哥你这个是声明的抽象对象吧 你创建 A new B 干嘛 直接 B xx = new B();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询