「JAVA子类内存」java子类继承的规则

博主:adminadmin 2023-03-21 14:19:06 910

今天给各位分享JAVA子类内存的知识,其中也会对java子类继承的规则进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

在Java中,多态父类转换成子类和子类转换成父类的内存地址引用指向画图说明

父类转换成子类内存地址引用指向 -----------失败

子类转换成父类的内存地址引用指向------------地址相同

java子类对象创建过程内存变化

子类创建对象的时候,会首先创建父类对象, 父类对象构造完成,才会创建本身。

所以,针对父类属性 和子类属性 是两个不同的属性的

例如 子类和父类对象都有 id属性, 那么他们两个不是同一个ID属性,存在不同的空间中

如果子类中没有ID属性,而父类中有的话,子类会继承父类的非私有属性

例如下面的代码

public class Super {

String id ="aaaaaa";

}

class Sub extends Super{

String id ="bbbb";

}

class Sub2 extends Super{

}

public class T {

public static void main(String[] args) {

Sub sub = new Sub() ;

System.out.println(sub.id);

Super s = new Super() ;

System.out.println(s.id);

Sub2 sub2 = new Sub2() ;

System.out.println(sub2.id);

}

}

执行T 你会发现 sub打印的是他自己的id值 , sub2打印的是父类的id值

java 中子类继承父类的字段时,占用的是同一块内存还是父类和子类对象分别占用各自的一块内存,请高人详答

java语言中的对象采用的堆和栈的形式来存放,例如 Father f = new Father();f存放在栈中,其实只是一个堆内存的地址,真正地对象保存在此地址所指向的堆内存中。

所以你的答案就显而易见了,Father f = new Father(); Child c = new Child();这里Father是父类,Child是子类,f和c是两个不同的内存地址,他们的对象保存的地方也不同,所以他们的字段也不会再同一片内存区域。

如果父类中有个字段a,子类继承了父类的这个字段a,其实就是子类的那个内存区域里面也会有一个a字段,父类的内存区域中也有a字段,他们两个没有什么关系。

JAVA子类内存的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java子类继承的规则、JAVA子类内存的信息别忘了在本站进行查找喔。