- 浏览: 438375 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
CmdSmith:
这么构建出来的应该都是完全二叉树吧。。
java实现二叉树的构建以及3种遍历方法 -
haoyuan2012:
非常好,很受益
java实现二叉树的构建以及3种遍历方法 -
haizhiguang:
请问楼主是如何想到 nodeList.get(parent ...
java实现二叉树的构建以及3种遍历方法 -
Angry_Icarus:
赞赞赞
java实现二叉树的构建以及3种遍历方法 -
lilin9043:
刚刚用这个 不会用
UrlRewrite时需要注意的问题:action以及正则表达式
package thinkingInJava.interfaces; //: interfaces/Adventure.java //Multiple interfaces. /* * 本例子展示就是使用接口的核心原因:为了向上转型为多个基类型,以及由此带来的灵活。 * */ interface CanFight { void fight(); } interface CanSwim { void swim(); void fight();//故意放进一个和接口CanFight相同的方法 } interface CanFly { void fly(); } class ActionCharacter { public void fight() {//故意写一个和接口CanFight,CanSwim相同的方法 System.out.println("----我可以战斗!"); } } class Hero extends ActionCharacter implements CanFight, CanSwim, CanFly { /* * 在父类、接口中那些相同的方法将具有相同的特征签名 * 也就是说它们方法的交集将指向同一个代表(这个是自己的称呼哈!O(∩_∩)O哈哈~) */ public void swim() { System.out.println("----我可以游泳!"); } public void fly() { System.out.println("----我可以飞翔!"); } } public class Adventure { public static void t(CanFight x) { System.out.println("来自CanFight:"); x.fight(); } public static void u(CanSwim x) { System.out.println("来自CanSwim:"); x.swim(); x.fight(); } public static void v(CanFly x) { System.out.println("来自CanFly:"); x.fly(); } public static void w(ActionCharacter x) { System.out.println("来自ActionCharacter:"); x.fight(); } public static void main(String[] args) { /* * t,u,v,w方法中传递的参数可以向上某个接口或者类 */ Hero h = new Hero(); t(h); // Treat it as a CanFight,向上某个接口CanFight u(h); // Treat it as a CanSwim,向上某个接口CanSwim v(h); // Treat it as a CanFly,向上某个接口CanFly w(h); // Treat it as an ActionCharacter,向上某个类ActionCharacter } } // /:~ 运行结果: 来自CanFight: ----我可以战斗! 来自CanSwim: ----我可以游泳! ----我可以战斗! 来自CanFly: ----我可以飞翔! 来自ActionCharacter: ----我可以战斗!
对上述代码进行一下优化
经验来源:在JDK的API文档中我们会经常看见命名的规范和方法的重载,裁图示例!
Arrays.fill
Arrays.binarySearch
package tij.interfaces.test; /* * 参考:package thinkingInJava.interfaces.Adventure.java; * * 本例子展示就是使用接口的核心原因:为了向上转型为多个基类型,以及由此带来的灵活。 * */ interface CanFight { void fight(); } interface CanSwim { void swim(); void fight();// 故意放进一个和接口CanFight相同的方法 } interface CanFly { void fly(); } class ActionCharacter { public void fight() {// 故意写一个和接口CanFight,CanSwim相同的方法 System.out.println("----我可以战斗!"); } } class Hero extends ActionCharacter implements CanFight, CanSwim, CanFly { /* * 在父类、接口中那些相同的方法将具有相同的特征签名 也就是说它们方法的交集将指向同一个代表(这个是自己的称呼哈!O(∩_∩)O哈哈~) */ public void swim() { System.out.println("----我可以游泳!"); } public void fly() { System.out.println("----我可以飞翔!"); } } public class Adventure { /* * 在这里重载了方法getPath:传递的参数不同,方便统一个调用名称 */ public static void getPath(CanFight x) { System.out.println("来自CanFight:"); x.fight(); } public static void getPath(CanSwim x) { System.out.println("来自CanSwim:"); x.swim(); x.fight(); } public static void getPath(CanFly x) { System.out.println("来自CanFly:"); x.fly(); } public static void getPath(ActionCharacter x) { System.out.println("来自ActionCharacter:"); x.fight(); } public static void main(String[] args) { /* * 我们只需使用Hero类的上级来指向对象 * 这种方法也是非常实用的方式 */ CanFight cf = new Hero(); getPath(cf); CanSwim cs = new Hero(); getPath(cs); CanFly cfly = new Hero(); getPath(cfly); ActionCharacter ac = new Hero(); getPath(ac); } }
输出的结果和刚才一样:
来自CanFight:
----我可以战斗!
来自CanSwim:
----我可以游泳!
----我可以战斗!
来自CanFly:
----我可以飞翔!
来自ActionCharacter:
----我可以战斗!
.
发表评论
-
采用Client/Server模型理解回调callback
2012-04-22 11:38 4414关于回调早就听说过,但是不曾理解过,周日的上午外面阳光灿烂,我 ... -
java源文件夹打包
2012-04-01 12:49 1182有时候我们可能需要修改源文件来适应自己的需求 案 ... -
使用命令行的方式启动Mina
2012-02-29 09:50 0/** * 使用命令行的方式启动Mina ... -
MD5的工具方法使用
2011-12-07 10:33 1655package com.cdl.test; impo ... -
二进制基础(负数转二进制)
2011-10-30 14:49 2213比如,假设有一 int 类型的数,值为5,那么,我们知道它在计 ... -
java.util包的集合框架应用
2011-10-27 23:19 1330package mix.test; import j ... -
对Entity的未用字段进行借鸡下蛋
2011-09-20 15:00 1241. 1.实体 public class Image ... -
不要再困扰在String与StringBuffer(StringBuilder)的区别上鸟
2011-06-29 16:44 1171无论是初学者还是在java ... -
在myeclipse8.5中导出uml类图
2011-06-21 19:59 1490百度一下:myeclipse类图 . http://wenk ... -
用一下UML建模工具Rational Rose以及类图的基本关系
2011-06-09 14:24 10763. 基本的类图关系: 编码实现: packa ... -
统计某一数组中重复数字的次数
2011-04-28 18:15 5701. 今天上谯老师软件项目管理方法与实践课时给出了一个他曾经留 ... -
模仿String.indexOf,判断一个字符串是否包含另一个字符串
2011-04-26 15:42 4313. 目录: 一.方法介绍 二.图示意 三.源代码 一.方法 ... -
在MyEclipse中添加Java、Struts...源码
2011-03-09 15:14 1150三种方法: 第一种: “window”-> " ... -
后台打印在参看程序执行流程中的重要作用
2010-11-15 13:19 1002附注:在每个方法里打印”进入这个方法、方法的名称”,这样 ... -
自定义类中2个元素的比较升级到3个元素的比较
2010-10-28 23:26 1238可以先参考一下前面的一篇文章:为了比较,让自己的类实现Comp ... -
给你一个字符串,包含了空格等标点符号,要你计算出出现次数最多的字母和该字母出现的次数。
2010-10-26 23:59 2816关于Map.Entry可以参看在容器中使用增强的for循环, ... -
在容器中使用增强的for循环,简洁大气,结构清晰
2010-10-26 21:44 1501除了增强的for循环使代 ... -
求模( Modulus )与求余(Remainder) (转)
2010-10-26 17:37 2463import java.math.BigInteger; ... -
今天非常高兴,解决了一个由来已久的单词出现频率统计问题。以及容器浅总结
2010-10-26 16:33 2683总述:人与动物的最大 ... -
为了比较,让自己的类实现Comparable接口,重写compareTo
2010-10-26 14:56 20798首先需要实现带泛型的Comparable接口,按照自己想要 ...
相关推荐
Java 向上转型与向下转型 Java 转型是 Java 编程中的一种非常重要的概念,主要包括向上转型和向下转型两种。向上转型是指将子类对象转换为父类对象,而向下转型是指将父类对象转换为子类对象。 向上转型...
在Java编程语言中,向上转型和向下转型是对象多态性的关键组成部分,它们涉及到对象的类型转换,使得程序设计更加灵活且易于维护。下面将详细解释这两种转型的概念、原理及应用。 ### 向上转型 向上转型指的是将一...
【标题】"广发证券长安汽车000625品牌向上筑牢盈利底座,转型构建" 是一篇关于中国长安汽车公司(股票代码000625)的深度研究报告,由知名证券机构广发证券发布。这篇报告的核心是探讨长安汽车如何通过提升品牌形象...
本文将深入探讨这两种转型方式以及如何正确使用它们。 **向上转型(Upcasting)** 向上转型是指将子类对象赋值给父类引用,这是一个隐式的过程,无需显式声明。例如: ```java Animal animal = new Dog(); // 向上...
向上转型是面向对象编程中的一个重要概念,主要应用于Java等支持多态特性的语言。它指的是将子类的对象赋值给父类的引用,这样就可以通过父类引用来调用子类中继承自父类的方法。在Java中,这种转换是自动的,无需...
### Java中的对象转型与多态 ...Java中的对象转型、多态、抽象类以及接口是面向对象编程的重要概念。通过这些机制,我们可以编写更加灵活、可扩展的代码。理解这些概念对于开发高质量的Java应用程序至关重要。
向上转型是将子类对象转换为父类类型的过程,而向下转型是将父类对象转换为子类类型的过程。 向上转型(Upcasting) 向上转型是将子类对象转换为父类类型的过程。在 Java 中,我们可以使用子类对象来初始化父类...
什么是向下转型和向上转型
在Java编程语言中,多态(Polymorphism)和接口(Interface)是两个核心概念,它们对于理解和构建面向对象程序至关重要。多态性是面向对象编程的三大特性之一,另外两个是封装和继承。接口则提供了类之间的抽象连接...
向上转型是指子类对象转换为父类或接口,而向下转型是指父类对象转换为子类。了解向上转型和向下转型的机制可以帮助我们更好地理解Java中的继承机制,并且能够更好地应用继承机制来编写更加灵活和可扩展的代码。 ...
本文将深入探讨对象引用与对象的区别、多态性、向上转型和向下转型以及栈和堆内存的管理。 首先,让我们了解对象引用与对象的区别。对象是根据类实例化出来的实体,它们在内存中的位置通常在堆区,具有实际的数据和...
* 多态性的类型:向上转型、向下转型 * 向上转型:子类对象 → 父类对象 * 向下转型:父类对象 → 子类对象 五、抽象类和接口 抽象类和接口是JAVA中两种特殊的类。 * 抽象类:包含一个或多个抽象方法的类 * 接口...
能够实现的原因,也是因为子类在向上转型的过程中,也许会缩小接口,但至少不会比父类中有的接口还要窄。 向上转型好在哪?如果没有向上转型机制,我们想要达到原来的效果,就需要增加许多重载的 test 方法,这样就...
在主类中people类的声明对象分别作为Chinapeople和Americanpeople类对象的上转型对象,并让这个上转型对象调用showname方法。编写一个people类,该类有string类型的成员变量firstname和lastname来存放people对象的...
在实验指导的"上机实践4"部分,你可能会遇到创建和使用继承、上转型对象以及接口的实例。例如,你可能需要定义一个基础类,然后创建它的子类,利用继承来扩展功能。接着,你会使用上转型对象来处理不同子类的实例,...
证券行业的2021年度中期投资策略主要关注两个核心概念:周期向上和财富管理红利的变现。今年上半年,证券板块表现平淡,相对于沪深300指数表现不佳,主要原因是市场风险偏好的下降和对传统业务的依赖。尽管2021年第...
报告标题:“博腾股份-300363-投资价值分析报告:战略转型初见成效,向上经营拐点持续验证”揭示了这家名为博腾股份的公司在IT行业的投资潜力和其近期的战略调整成果。本报告将深入探讨博腾股份在IT领域的业务表现、...
Java中的“向上转型”是指将子类对象转换为父类类型的过程。在Java中,这是一种自动转换,无需显式操作。这种转换允许我们用父类的引用去引用子类的对象,从而实现对子类功能的调用,同时保持代码的抽象性和通用性。...
在Java编程中,多态性、抽象和接口是面向对象编程的三大核心概念,它们为代码的灵活性、可扩展性和复用性提供了基础。以下是对这些概念的详细解释: 1. **多态性(Polymorphism)**:多态性是面向对象编程的一大...