这是多态里面的知识。首先来说强转的目的当然是为了使用子类特有的属性 或者方法。下面举个例子。
比如我要为person类重写equals方法。(equals是Object类的方法,任何一个类都会直接或者间接继承Object)
public boolean equals(Object b)
{
if(b instanceof person)
person p=(person)b;
return p.name.equals(this.name);
}
这里Object就是person的父类。我们的equals方法的参数类型是person的父类.既然我们是为person重写方法,那肯定要用到person的特有属性而不是父类就有的共有属性(如果只是用到父类的属性就不必要重写了)。因此我们只有拿到person这个类才能用到其特有的属性。所以就需要将Object转成person了。类的强转必须要有继承关系,否则强转失效。 |