import com.java.charpt05.NewStr;
class Quadrangle
{
public static void draw(Quadrangle q)
{
System.out.println(q.getClass().getName());
}
}
public class Parallelogram extends Quadrangle{
public static void main(String[] args) {
Parallelogram q=new Parallelogram();
draw(q);
}
}
这是对象类型转换中的向上转型。它总是安全的
2.
import com.java.charpt05.NewStr;
class Quadrangle
{
public static void draw(Quadrangle q)
{
System.out.println(q.getClass().getName());
}
}
public class Parallelogram extends Quadrangle{
public static void main(String[] args) {
draw(new Parallelogram());
Quadrangle q=new Parallelogram();
// Parallelogram q=q;报错
Parallelogram p=(Parallelogram) q;
}
如果将父类对象直接赋予给子类对象会发生错误,因为父类对象不一定是子类的实例,如果将父类对象强制转换为某个子类对象,这种方式为显示类型转换.
当程序中使用向下转型技术上时,必须使用显示类型 转换,向编译器指明将父类对象转换为哪一类型的子类对象