文档章节

向上转型

wf王帆
 wf王帆
发布于 2016/05/15 21:40
字数 512
阅读 22
收藏 0
点赞 2
评论 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 ⋅ 0

对JAVA接口的用法

首先,请先看一个简单的例子: 原来我对JAVA接口的用法: interface A{ public abstract void b(); } //B类执行A接口并实现抽象方法b() public calss B implements A{ public void b(){ System....

墙头草 ⋅ 2011/10/20 ⋅ 0

Java:继承的目的及缺陷

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

人人都能学编程 ⋅ 2017/12/13 ⋅ 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 ⋅ 6

编程思想 之「多态」

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

qq_35246620 ⋅ 01/02 ⋅ 0

Java——动态绑定和多态

动态绑定是在执行期间(而不是编译期间)判断所用对象的实际类型,根据其实际的类型调用其相应的方法(确定选择哪个多态形式被调用)。 首先是方法的参数是父类对象,传入子类对象是否可行 ...

野渡书生 ⋅ 2016/03/11 ⋅ 0

c++中向上转型(安全)和向下转型(不安全)

//基本的向上构造 #include using namespace std; class A{ public: void myfunc(){ cout << "A myfunc" << endl; } virtual void mytest(){ cout << "A mytest" << endl; } }; class B:publ......

科技小能手 ⋅ 2017/11/12 ⋅ 0

java接口回调和回调函数

1、java的接口定义以及向上转型是理解回调的基础; 使用接口的核心原因:为了能够向上转型为多个基类型。即利用接口的多实现,可向上转型为多个接口基类型。 2、匿名类。 代码随处可见new S...

vshcxl ⋅ 2016/04/22 ⋅ 0

《JAVA编程思想》学习笔记——第七章 复用类

复用类的主要方式有两种:组合,继承 组合 例: class A {} class B {A a;} 继承 继承是所有OOP语言和Java语言不可缺少的组成部分。当创建一个类时,总是在继承,因此,除非已明确指出要从其...

lixiaocheng18 ⋅ 2017/02/06 ⋅ 0

java向上转型妙用

Java向上转型的妙用 下面这段代码摘自《java编程思想》,内容稍有修改

alantuling_jt ⋅ 2017/07/11 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

用ZBLOG2.3博客写读书笔记网站能创造今日头条的辉煌吗?

最近两年,著名的自媒体网站今日头条可以说是火得一塌糊涂,虽然从目前来看也遇到了一点瓶颈,毕竟发展到了一定的规模,继续增长就更加难了,但如今的今日头条规模和流量已经非常大了。 我们...

原创小博客 ⋅ 41分钟前 ⋅ 0

MyBatis四大核心概念

本文讲解 MyBatis 四大核心概念(SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession、Mapper)。 MyBatis 作为互联网数据库映射工具界的“上古神器”,训有四大“神兽”,谓之:Sql...

waylau ⋅ 今天 ⋅ 0

以太坊java开发包web3j简介

web3j(org.web3j)是Java版本的以太坊JSON RPC接口协议封装实现,如果需要将你的Java应用或安卓应用接入以太坊,或者希望用java开发一个钱包应用,那么用web3j就对了。 web3j的功能相当完整...

汇智网教程 ⋅ 今天 ⋅ 0

2个线程交替打印100以内的数字

重点提示: 线程的本质上只是一个壳子,真正的逻辑其实在“竞态条件”中。 举个例子,比如本题中的打印,那么在竞态条件中,我只需要一个方法即可; 假如我的需求是2个线程,一个+1,一个-1,...

Germmy ⋅ 今天 ⋅ 0

Springboot2 之 Spring Data Redis 实现消息队列——发布/订阅模式

一般来说,消息队列有两种场景,一种是发布者订阅者模式,一种是生产者消费者模式,这里利用redis消息“发布/订阅”来简单实现订阅者模式。 实现之前先过过 redis 发布订阅的一些基础概念和操...

Simonton ⋅ 今天 ⋅ 0

error:Could not find gradle

一.更新Android Studio后打开Project,报如下错误: Error: Could not find com.android.tools.build:gradle:2.2.1. Searched in the following locations: file:/D:/software/android/andro......

Yao--靠自己 ⋅ 昨天 ⋅ 0

Spring boot 项目打包及引入本地jar包

Spring Boot 项目打包以及引入本地Jar包 [TOC] 上篇文章提到 Maven 项目添加本地jar包的三种方式 ,本篇文章记录下在实际项目中的应用。 spring boot 打包方式 我们知道,传统应用可以将程序...

Os_yxguang ⋅ 昨天 ⋅ 0

常见数据结构(二)-树(二叉树,红黑树,B树)

本文介绍数据结构中几种常见的树:二分查找树,2-3树,红黑树,B树 写在前面 本文所有图片均截图自coursera上普林斯顿的课程《Algorithms, Part I》中的Slides 相关命题的证明可参考《算法(第...

浮躁的码农 ⋅ 昨天 ⋅ 0

android -------- 混淆打包报错 (warning - InnerClass ...)

最近做Android混淆打包遇到一些问题,Android Sdutio 3.1 版本打包的 错误如下: Android studio warning - InnerClass annotations are missing corresponding EnclosingMember annotation......

切切歆语 ⋅ 昨天 ⋅ 0

eclipse酷炫大法之设置主题、皮肤

eclipse酷炫大法 目前两款不错的eclipse 1.系统设置 Window->Preferences->General->Appearance 2.Eclipse Marketplace下载【推荐】 Help->Eclipse Marketplace->搜索‘theme’进行安装 比如......

anlve ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部