转型

多态性分为对象方法的多态和对象类型的多态:

对象方法的多态:方法的重在与重写

对象类型的多态;在Java中,对象类型的多态可以分为向上转型和乡下转型。向上转型是程序自动完成的,而乡下转型必须明确指出要转型的子类类型,这是强制的。

向上转型:

格式:父类 父类对象名=new 子类();

  其中,“new 子类()”表示的是子类的实例。      

<strong> </strong>class Person{
    public void tell(){
        System.out.println("父类Person的tell()方法");
    }
}
class Student extends Person(){
     public void tell(){
      System.out.println("子类Student的tell()方法");
    }
      public void print(){
         System.out.println("子类Student的print");
  }
}
public class UpcastingDemo1{
   public static void main(String[] args){
        Person per=new Student();//子类Student向上转型为父类Person
        per.tell();             //转型后可以访问子类重写父类的tell()方法
        per.print();            //错误,不能访问子类新增的print()方法
    }
}<strong>
</strong>
输出结果:子类Student的tell()方法

上面程序中,Person per=new Student()将子类Student创建的对象向上转型为父类Person类型,然后在调用子类Student重写父类Person父类的tell()方法。

就是说,父类调用子类的方法,但是向上转型的对象不能调用子类新增的方法,否则在编译时会出错。


总结:通过向上转型,父类对象可以调用子类重写的方法,但是不能调用子类新增的方法。


                                            

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值