java中的所谓的向上转型

搬家后的博客链接: IT客栈 www.itkezhan.org


     java中的所谓的向上转型,目前的理解是。子类基本上转化为父类,唯一不同于父类的是,这个子类在调用父类方法的时候,如果原来子类中覆写了父类的方法,则转型后的子类会调用这个覆写的方法,而不会调用父类中那个被它覆写的方法。




例子:


    class f{
public int book = 6;

public void base()
{
System.out.println("父类的普通方法");
}


public void test()
{
System.out.println("父类的被覆盖方法");
}
}






class c extends f{
public String book="java实例开发";
public void test()
{
System.out.println("子类的覆盖方法");
}

public void sub()
{
System.out.println("子类的普通方法");
}

}


public class test{
public static void main(String[] args)
{



f d = new c();   //向上转型

System.out.println(d.book);   //这时候调用的是父类的属性,输出的是 6
d.base(); //调用了父类的方法,打印出了     “父类的普通方法”
d.test(); //由于test这个方法在子类(c)中被覆写,所以这个时候调用的是子类中的 test 方法;
//d.sub();    //子类向上转型了之后,基本上跟父类差不多,所以不能直接调用父类之外方法。由于这个sub不是属于父类,所以如果运行这句,编译会出错
}





}




总结:向上转型后的子类实例=父类实例的属性 + 父类实例没有被覆写的方法 + 子类覆写的方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值