java 子类与父类 转换
来源:互联网 发布:网络出版许可证查询 编辑:程序博客网 时间:2024/06/05 19:01
能转,是因为它确实是。
不能转,是因为它不是。
----------------------------------------------------------------------
B extends A
B b = (B)a;
这里的new B()本身就是子类的对象,只是使用了父类的引用a指向它!
class A
{
public void print()
{
System.out.println("A.func1");
}
}
class B extends A
{
public void print()
{
System.out.println("B.func1");
}
}
子类可以以父类的身份出现( A a=new B();)但做事情时还是按自己的方法做:a.func1()输出的结果是"B.func1"
父类不可以以子类身份出现(B b=new A();),因为会报向下转型异常.
Java的强制转换是用在当子类对象上传给父类后,需要重新获取子类对象时,使用下传,将对象强制装换成子类对象。也就是说原先的对象最开始就是子类的,只是在上传的时候丢失了具体的类型。
现在你想将父类的对象转换成子类的对象,这是不可能的,在每个类中都有一个Class类,来存放每个类的具体信息,这样保证类在上传和下传时都能找到最原始的类。
Structs里面ActionFrom中真正传入的是子类的对象,只是把它上传给了一个父类的引用,所以这个对象的Class类存放的是子类的信息,强制转换成子类,当然是可以的。就像是:Father a = new Son();Son b = (Son)a;
而如果是你现在是想把Father a = new Father();Son b = (Son)a;这是完全不同的,前者Class中存放的是子类的信息(包括一些方法、变量和块),后者存放的是父类的信息。
- java 子类与父类 转换
- Java子类与父类的转换
- java 父类与子类的转换
- Java子类与父类的转换
- Java 父类与子类 类型转换
- JAVA父类对象与子类对象-造型转换
- JAVA父类对象与子类对象-造型转换[转]
- JAVA父类对象与子类对象-造型转换
- Java子类与父类之间的对象转换
- JAVA中子类与父类相互转换
- java 父类、子类 类型转换【父类不能转为子类】
- 父类与子类的转换条件
- 父类与子类之间的转换
- 父类与子类之间的转换
- 父类与子类之间的转换
- java 父类强制转换为子类
- Java 子类与父类这间的转换
- java中父类与子类的转换问题
- c++优先级列表
- 数据库建索引
- [转]网页设计心理学
- sed
- hdu 递推 2050 1290 2563 2064 2077 规律哥
- java 子类与父类 转换
- 手势识别论文与资源(转)
- php中heredoc的使用方法
- 基于PXE的启动WINPE系统
- 行人检测论文集合(转)
- hdu Cows
- Android Handler and Message and Timer
- 数据库游标
- HDU 4397 - Rubik's Cube