向上转型、向下转型 A a = new b();

向上转型和向下转型其实是java中的一种多态,继承和实现都有自己的转型方式,他们大致相同,略微在向下转型有一些区别。我们一般称向上转型为瘦身,假如A是B的父类,此时 A a = new b();叫做向上转型,会丢失自己和父类不同的方法,而重写父类和自己都有的方法。使用a调用方法时,发现子类有的方法就调用子类,子类没有的调用父类。假如A是B的子类,此时 A a = new b();叫做向下转型,但是在这里会有异常发生,因为父类根本不知道到底谁继承了他,这个时候需要强转,而继承还有一个问题就是,必须要先向上转型才能向下转型。接口实现可以直接向下转型。

class Useful {
    public void f() {
        System.out.println("Useful:f()");
    }

    public void g() {
        System.out.println("Useful:g()");
    }

    public void w() {
        System.out.println("Useful:w()");
    }
}

class MoreUseful extends Useful {
    public void f() {
        System.out.println("MoreUseful:f()");
    }

    public void g() {
        System.out.println("MoreUseful:g()");
    }

    public void u() {
        System.out.println("MoreUseful:u()");
    }

    public void v() {
        Sy
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值