首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >java中downcast向下转型到底有什么用? 举例说明!

java中downcast向下转型到底有什么用? 举例说明!

作者头像
马克java社区
修改2021-03-29 10:19:55
修改2021-03-29 10:19:55
7670
举报
文章被收录于专栏:java大数据java大数据

What is the point of downcast? 当一个方法只有子类才有,马克-to-win:不是说基类和子类都有,开始时又是基类指针指向派生类,这时就需要downcast, see the following example. after you cast with SubClass,sc is pure SubClass type.

例1.9.1---

class SuperClassM_t_w {

    int a;

    SuperClassM_t_w() {

        a = 5;

    }

    public void printAsuper() {

        System.out.println("父类中a =" + a);

    }

}

class SubClass extends SuperClassM_t_w {

    int a;

    SubClass(int a) {

        this.a = a;

    }

    public void printA() {

        System.out.println("子类中a = " + a);

    }

}

public class Test {

    public static void main(String args[]) {

/* note that new SubClass(10) will call SuperClassM_t_w(), default constructor. */

        SuperClassM_t_w s1 = new SubClass(10);

        s1.printAsuper();//基类指针指向派生类时,马克-to-win: 可以用基类指针调用基类仅有的方法, 但不能调用子类仅有的方法。必须向下强转一下。

        // s1.printA();错误

/* 我们不能去掉下面的话,因为SuperClassM_t_w没有printA方法。马 克-to-wi n:we can not comment the following statement,because SuperClassM_t_w does not have the method of printA, report error */

        SubClass sc = (SubClass) s1;

        sc.printA();

    }

}

 

更多请见:https://blog.csdn.net/qq_44639795/article/details/103117168

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档