当子类A转成父类B,子类A内容父类B可以访问吗,此时把父类B在转成和A同子类C,C可以访问A中内容吗
时间: 2024-04-28 09:26:04 浏览: 37
当子类A转换成父类B时,子类A中定义的内容会被截断,只有父类B中定义的内容会被保留,因此父类B只能访问子类A中继承过来的内容,而无法访问子类A中新增加的内容。
如果将父类B对象转换成与子类A同级别的子类C对象,C依然无法访问子类A中新增加的内容,因为在子类A转换成父类B时,新增加的内容被截断了。但如果子类C中定义了与子类A新增加的内容相同的属性或方法,那么子类C可以访问这些属性或方法。
相关问题
当子类A转成父类B,子类A内容父类B可以访问吗,此时把父类B在转成子类C,C可以访问A中内容吗
当子类A转换成父类B时,子类A中定义的内容会被截断,只有父类B中定义的内容会被保留,因此父类B只能访问子类A中继承过来的内容,而无法访问子类A中新增加的内容。
如果将父类B对象转换成子类C对象,C依然无法访问子类A中新增加的内容,因为在子类A转换成父类B时,新增加的内容被截断了。但如果子类C中定义了与子类A新增加的内容相同的属性或方法,那么子类C可以访问这些属性或方法。
父类是A对象是a子类是B对象是b怎么实现向下转型
如果你要将一个父类A的对象a向下转型为子类B的对象b,需要使用强制类型转换符(B)来实现。具体的代码实现如下:
```
A a = new B(); // 父类对象引用指向子类对象
B b = (B) a; // 向下转型
```
需要注意的是,向下转型需要满足两个条件:
1. 父类对象必须实际上是子类对象,也就是说,父类对象引用指向的是子类对象。
2. 父类对象引用必须在向下转型之前,被向上转型为子类对象。
如果这两个条件不满足,向下转型就会出现运行时错误。因此,在进行向下转型之前,一定要先进行类型检查,可以使用instanceof关键字来判断。具体的代码实现如下:
```
if (a instanceof B) {
B b = (B) a; // 向下转型
}
```