关于强制转换的一个疑问

 

接口如何强转为activity?

      (1)  KJActivityStack.create().addActivity(this);

 

    private static Stack<I_KJActivity> activityStack;

    public void addActivity(I_KJActivity activity) {
        if (activityStack == null) {
            activityStack = new Stack<I_KJActivity>();
        }
        activityStack.add(activity);
    }

 

 

     I_KJActivity activity = activityStack.lastElement();
        return (Activity) activity;

这代码为何正确?

 

 

实现了该接口的activity可以这样写,否则(1)会报错

接口强制转化为实现类class

 

简单类型以外的任何类的对象,都可以转换成一个任意接口类型的变量,但是如果没有实现该接口的话就不能调用。
简单类型以外的任何类的对象,可以转换成在继承树上有垂直关系的类的变量,比如祖-父-己-子-孙之间可以转换,但兄弟之间就不能转换。

你可能感兴趣的:(关于强制转换的一个疑问)