向上转型
博客专区 > wf王帆 的博客 > 博客详情
向上转型
wf王帆 发表于2年前
向上转型
  • 发表于 2年前
  • 阅读 21
  • 收藏 0
  • 点赞 2
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

  因为平行四边形是特殊的四边形,也就是说平行四边形是四边形的一种,那么就可以将平行四边形对象看作是一个平行四边形对象。例如,鸡是家禽的一种,而家禽是动物的一种,那么就可以将鸡对象看作是一个动物对象,可以用一下代码表示平行四边形与四边形的关系。

     在项目中创建Parallelogram类,再创建Quadrangle类,并使Parallelogram类继承Quadrngle类,然后在主方法中调用父类的draw()方法。

   class Quadrangle {                                              //四边形类

      public ststic void draw(Quadrangle q) {           //四边形类中的方法

         //语句

        }

}

   public class Parallelogram extends Quadrangle {        //平行四边形类,继承了四边形类

      public ststic void main(String args[]) {

             Parallelogram p=new Parallelogram();              //实例化平行四边形类对象引用

             draw (p);                                                            //调用父类方法

             }

     }

    上例中,平行四边形类继承了四边形类,四边形类存在一个draw()方法,它的参数是Quadrangle(四边形类)类型,而在平行四边形类的主方法中调用draw()时给与的参数类型却是Parallelogram(平行四边形类)类型的。这里一直再抢点一个问题,就是平行四边形也是一种类型的四边形,所以可以将平行四边形类的对象看作是一个四边形类的对象,这就相当于"Quadrangle obj=new Parallelogram();"就是把子类对象赋值给父类类型的变量,这种技术就是向上转型。试想一下正方形类对象可以作为draw()方法的参数,梯形类对象也可以作为draw()方法的对象,如果在四边形的draw()方法中根据不同的图形对象设置不同的处理,就可以做到在父类中定义一个方法完成各个子类的功能,这样就可以使同一份代码毫无差别地运用到不同类型之上,这就是多态机制的基本思想。

 

共有 人打赏支持
粉丝 7
博文 64
码字总数 9386
×
wf王帆
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: