10:上溯造型

相关代码:

 1 class a{}
 2 class Hello{
 3     Hello(a example){
 4         System.out.println("yo");
 5     }
 6 }
 7 class aa extends a{}
 8 public class SprinklerSystem {
 9  public static void main(String[] args) {
10      a c=new a();
11      aa d=new aa();
12      Hello q=new Hello(c);
13      Hello w=new Hello(d);
14     }
15 }

    由代码可看出,Hello构造器中的标准参数为对象a,但是看第13行,a的子类b被带入到Hello构造器中也是可以成立的,这就是所谓的”上溯造型“。子类是父类的超集,它至少了父类中的所有方法,所以”上诉造型“对于父类是可行的话那么对于子类也是可行的,不过有可能在子类上溯造型的时候丢失方法(父类中没有的)。

    有上溯造型,那么就有下溯造型,虽然两者均可行,但是下溯造型的问题是要多于上溯造型的。比如说方法中使用了子类相对于父类多出的方法/变量时,使用下溯造型将父类带入到方法中就会出错。

时间: 2024-10-11 15:35:27

10:上溯造型的相关文章

10个造型奇特的css3进度条(有的html被编辑器转义了,上面的代码还是OK的)。。。转载

<div id="caseVerte"> <div id="case1"></div> <div id="case2"></div> <div id="case3"></div> <div id="case4"></div> <div id="case5"></d

thinking in java ----reading note (1)

# thinking in java 4th# reading note# victor# 2016.02.10 chapter 1 对象入门 1.1 抽象的进步    (1) 所有东西都是对象.    (2) 程序是一大堆对象的组合,对象间通过消息联系.    (3) 通过封装现有对象,可制作出新型对象.    (4) 每个对象都有一种类型(某个类的实例).    (5) 同一类的所有对象都能接受相同的消息.    1.2 对象的接口 & 1.3 实现方法的隐藏     接口规定了可对一个特定

近来的java小总结(2.1):类的知识的查漏补缺

首先,我是一名新手,所以,要带着批判的眼光来看下面的文章   这篇文章说了些什么? 这文章是我近来8.6号来在编程思想上打的代码,从0~200页的源码接近到在这里,下文正是总结这0~200页的的知识,涉及到接口,内部类.初始化,数值计算的一些细节.此文章不会一下子写完,可能隔一天可能再补下来.因为代码确实有点多.. 注意 1 我的注释不一定正确(不过各小标题和代码一定是正确的,因为是书本上的原话,但是注释不一定正确),如果你确信我的内容的话,你可能会损失很大,因为我只是个菜鸟,我只是来补救一些知

C# 委托 代理

C# 委托.代理 举例如下 B的show方法绑定到A的show方法,使得A在show时B也show C#中委托代理用法 定义delegate对象类型,如: public delegate void myEventHandler(object sender ,EventArgs e); 其中 sender代表触发事件的本身,EventArgs 是事件参数类 定义事件参数类,这个可以做也可以不做,看需求,如果需要传递一些信息,可以扩展EventArgs 类,如 public myEventArgs

9.JAVA编程思想 多形性

欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/51040241 "对于面向对象的程序设计语言,多型性是第三种最基本的特征(前两种是数据抽象和继承." "多形性"(Polymorphism)从另一个角度将接口从具体的实施细节中分离出来,亦即实现了"是什么"与"怎样做"两个模块的分离.利用多形性的概念,代码的组织以及可读性均能获得改善.此外,还能创建"

8.JAVA编程思想类再生

欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/51040239 "Java 引人注目的一项特性是代码的重复使用或者再生.但最具革命意义的是,除代码的复制和修改以外,我们还能做多得多的其他事情." 在象C 那样的程序化语言里,代码的重复使用早已可行,但效果不是特别显著.与Java 的其他地方一样,这个方案解决的也是与类有关的问题.我们通过创建新类来重复使用代码,但却用不着重新创建,可以直接使用别人已建好并调试好的现成

Java Object Model(一)

Java作为OOP语言,抽象性不言而喻.如果需要深入了解Java语言的实现机制,则不得不对Java语言中基础的概念有清晰的了解.今天是我在cnblog上写博客的第一天,希望 今天的博客可以是我成为未来"大牛"跨出的第一步. 面向对象语言中,对象概念其实挺抽象的,对于初学者甚至有开发经验的同志来说都不太容易弄明白.最近看到这篇牛人写的文章,觉得蛮受益的,和大家共同分享吧.翻译有 些拙劣,"大牛"请忽略我直接看原文,嘻嘻~. 原文出处链接:http://www.prog

侃侃Thinking In Java

我是从Bruce Eckel的网站开始,读Thinking In Java 1st edition的,那是2000年左右.实话实说,对于TIJ,我又喜欢又讨厌它. 又喜欢又讨厌 正如大多数同学所感觉的,TIJ偏重于介绍面向对象的"思想",而不是像绝大多数(国内的)<Xxx程序设计>之类的书籍,前者是思想流派,后者是语法流.这点很吸引我,而且,这也是我写<编程导论(Java)>时学习的地方. 但,我并没有完整地读完TIJ,因为 我不喜欢他的讲述方式.Bruce E

java基础 第一章 对象入门

第1章 对象入门 "为什么面向对象的编程会在软件开发领域造成如此震憾的影响?" 面向对象编程(OOP)具有多方面的吸引力.对管理人员,它实现了更快和更廉价的开发与维护过程.对分析与设计人员,建模处理变得更加简单,能生成清晰.易于维护的设计方案.对程序员,对象模型显得如此高雅和浅显.此外,面向对象工具以及库的巨大威力使编程成为一项更使人愉悦的任务.每个人都可从中获益,至少表面如此. 如果说它有缺点,那就是掌握它需付出的代价.思考对象的时候,需要采用形象思维,而不是程序化的思维.与程序化设