向上转型为什么不直接创建子类对象

发布于 2022-09-13 00:30:27 字数 840 浏览 40 评论 0

class ADCarry {

    public void duiXian() {
        System.out.println("这是父类的对线方法");
    }

    public void faYu() {
        System.out.println("这是父类的发育方法");
    }


}

class Uzi extends ADCarry {
    public void duiXian() {
        System.out.println("污渍下路三人路");
    }

    public void faYu() {
        System.out.println("污渍一人吃三路");
    }
}

class Bang extends ADCarry {

    public void duiXian() {
        System.out.println("Bang对线稳住");
    }

    public void faYu() {
        System.out.println("Bang不抢队友资源");
    }


}
public static void show(ADCarry adCarry) {
        adCarry.duiXian();
        adCarry.faYu();
    }
//这两种写法结果都一样 那么第二种有什么意义呢?
Uzi uzi = new Uzi();
show(uzi);

ADCarry uzi2 = new Uzi();
show(uzi2);

这种引用和指向都是子类的方式比引用父类指向子类差在哪?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

甲如呢乙后呢 2022-09-20 00:30:27

有啥好处不好说
坏处是访问不到子类的字段和方法
所以基本无意义

栩栩如生 2022-09-20 00:30:27

好处也有,坏处也有。但很明显,好处很大,而坏处能够直接感应到,在编码中就能解决。
好处:依赖倒置。依赖于抽象而不依赖于具体。这也就是接口的好处,通俗来说就是订规则确不实现,依赖于规则执行,这样的好处就是,无论你用何种方式实现都可以,我只需要达到某种目的即可。在维护的时候优势是巨大的。如果依赖具体实现,本可以修改一处,确需要修改很多处。
坏处:无法使用子类特有的方法。不过在编码中就能感觉到,所以这种错误是能够在编码中展现出来的。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文