导航

java 对象类型的转换

Posted on 2016-05-21 11:52  4565892  阅读(858)  评论(0)    收藏  举报

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;
        
        
        
        
    }
    
    
    
如果将父类对象直接赋予给子类对象会发生错误,因为父类对象不一定是子类的实例,如果将父类对象强制转换为某个子类对象,这种方式为显示类型转换.

当程序中使用向下转型技术上时,必须使用显示类型 转换,向编译器指明将父类对象转换为哪一类型的子类对象