文档章节

向上转型

wf王帆
 wf王帆
发布于 2016/05/15 21:40
字数 512
阅读 22
收藏 0

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

     在项目中创建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()方法中根据不同的图形对象设置不同的处理,就可以做到在父类中定义一个方法完成各个子类的功能,这样就可以使同一份代码毫无差别地运用到不同类型之上,这就是多态机制的基本思想。

 

© 著作权归作者所有

共有 人打赏支持
wf王帆
粉丝 6
博文 64
码字总数 9386
作品 0
西安
接口回调 类向上转型 向下转型 (java)

1:接口回调 接口回调是指:可以把使用实现了某一接口的类创建的对象的引用赋给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口的方法。实际上,当接口变量调用被类实现的接口...

城固如春
2016/09/30
90
0
Java:继承的目的及缺陷

在java中继承好像占用很重要的位置,很多地方多次强调,但这并不意味着必须使用它。我们要慎用这门技术。 那么到底什么时候使用继承?一个最清晰的判断方法就是问问自己是否需要从子类向父类...

人人都能学编程
2017/12/13
0
0
Java 多态方面的问题

public class Super { public int field=0; public int getField(){ return this.field; } } public class Sub extends Super{ public int field=1; public int getSuperField(){ return sup......

狂奔啦蜗牛
2012/06/07
369
6
ArrayList 其实也有双胞胎,但区别还是挺大的!

ArrayList 其实也有双胞胎,但区别还是挺大的! 一、问题产生 今天在学习源码的时候发现了这么一句注释,即: https://bugs.java.com/viewbug.do?bugid=6260652 这句话的意思是集合类型的方法...

DemonsI
09/30
0
0
编程思想 之「多态」

温馨提示:本系列博文(含示例代码)已经同步到 GitHub,地址为「java-skills」,欢迎感兴趣的童鞋、,纠错。 在面向对象的编程语言中,有三个特性,分别为:封装、继承和多态。在本文中,我...

qq_35246620
01/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

区块链100讲:盘点那些常用的加密算法原理

在开发过程中,常常用到各种加密方法和算法,本文总结了几种常用加密方法的原理。 1 对称加密 原理:加密和解密数据使用同一个密钥,适合对大量数据进行加解密 安全性:关键是密钥的保存方式...

HiBlock
15分钟前
0
0
zookeeper基本常识

一、Zookeeper基础知识 1 zookeeper是一个类似hdfs的树形文件结构,zookeeper可以用来保证数据在(zk)集群之间的数据的事务性一致。2 zookeeper有watch事件,是一次性触发的,当watch监视的数...

啃不动地大坚果
20分钟前
0
0
Forrester企业级容器平台权威排行出炉,小初创Rancher缘何成为领导者?

全球著名的调研机构Forrester Research近日发布了《The Forrester New Wave: Enterprise Container Platform Software Suites, Q4 2018》报告,对企业级容器平台(ECP)市场进行全面评估,希...

RancherLabs
23分钟前
0
0
【三 异步HTTP编程】 2. 流式HTTP响应

标准响应及Content-Length头 自HTTP1.1以来,服务器为了在一个链接中处理多个HTTP请求及响应,必须随response一起返回合适的Content-Length值。 默认情况下,对于简单请求你无需返回 Conten...

Landas
59分钟前
0
0
Java后端技术栈,到底如何深入学习?

Java,是现阶段中国互联网公司中,覆盖度最广的研发语言。有不少朋友问,如何深入学习Java后端技术栈,今天分享一个,互联网牛人整理出来的Java深入学习路线图,以及免费学习资料。 一 。性能...

别打我会飞
今天
1
1

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部