- 浏览: 435013 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (144)
- java (32)
- Flex (11)
- linux (15)
- 思维至上 (2)
- 生活 (4)
- spring2.5.5 (3)
- Design pattern (0)
- jdk1.6 (1)
- erlang (14)
- mysql (5)
- nginx (10)
- 互联网 (1)
- 用户体验 (0)
- jvm (8)
- hibernate (0)
- oracle (0)
- mvn (2)
- 23种常用设计模式详细讲解及实例 (1)
- nosql (1)
- mongodb (2)
- thrift (1)
- 负载均衡 (1)
- Objective-c (1)
- fuck (1)
- resin (3)
- log4j (2)
- android (1)
- jps (0)
- lucene (2)
- rsync (1)
- python (1)
- java性能分析 (1)
- spring (1)
- zookeeper (2)
- error (1)
- 算法 (1)
- hudson (1)
- svn (1)
- maven (1)
- svn server (2)
- swap linux (1)
- 协同过滤 (1)
- 邮件系统 (1)
最新评论
-
cheetah747:
我也遇到这个问题了,不过我是直接把第三方jar放到工程文件的l ...
JAVA NoClassDefFoundError: -
dxm1986:
hillfallshore 写道亲 你这是杜撰的小说吗?完全是 ...
面试有感 -
dxm1986:
mengda1027 写道从实习生到高级java到架构师,是在 ...
面试有感 -
dxm1986:
kljjack 写道一个编程十几年,每年看几十本技术书籍,技术 ...
面试有感 -
dxm1986:
轻指飞扬 写道呵呵,挺好玩的~ 我怎么感觉你招人不是很有诚意嘛 ...
面试有感
关于下塑造型,以前一直没有弄明白,因为老是出抛出“Exception in thread "main" java.lang.ClassCastException:”。然后看书发现,原来用下逆告型之前需要用instanceof进行检测父类对像类型是否为子类类型。如果是,才可以进行强制转换。如:
//super Class
public class Person {
public void print() {
out.println("this is the person");
}
}
public class Student extends Person {
public void print() {
out.println("this is the student");
}
public void printHello() {
out.println("say hello from student.");
}
}
然后在main 方法里面这样用:
public static void main(String args[]) { Student s = new Student();//上朔造型 Student sss=(Student)(new Person()); sss.print(); }
这样肯定会报错,那么我们要如下进行编程:
public static void main(String args[]) {
Person p = new Student();//上朔造型
if(p instance of Student){
Student sss=(Student)(new Person());//下塑造型
sss.print();
}
只能上塑造型这样才会打印出“this is the student”想一想,用到下塑造型,必须先上塑造型才能下塑造型,那样又有什么意义呢?显然下塑造型不是用在这种地方。那么用在哪里呢?在一声明了一个父类类型数组,且里面存放着父类的不同子类对像的时候,就需要用到下塑造型了。如下例子:
//super Class
public class Person {
public void print() {
out.println("this is the person");
}
}
public class Student extends Person {
public void print() {
out.println("this is the student");
}
public void printHello() {
out.println("say hello from student.");
}
}
public class Farmer extends Person {
public void print() {
System.out.println("the is the farmer.");
}
public void printHello() {
out.println("say hello from farmer.");
}
}
public class Test {
public static void main(String args[]) {
Student s = new Student();
Farmer f = new Farmer();
Teacher t = new Teacher();
Person persons[] = new Person[3];
persons[0] = s;
persons[1] = f;
persons[2] = t;
Student sss = (Student) (new Person());
for (int i = 0; i < 3; i++) {
Person p = persons[i];
if (p instanceof Student) {
Student s1 = (Student) p;
s1.print();
s1.printHello();
} else if (p instanceof Teacher) {
Teacher s1 = (Teacher) p;
s1.print();
s1.printHello();
} else if (p instanceof Farmer) {
Farmer s1 = (Farmer) p;
s1.print();
s1.printHello();
}
}
}
}
这样就可以一一分流出父类数组中的一个个子类对像,并且调用只属天它们自己的方法"printHello()",从而达到了下塑造型的目的
//super Class
public class Person {
public void print() {
out.println("this is the person");
}
}
public class Student extends Person {
public void print() {
out.println("this is the student");
}
public void printHello() {
out.println("say hello from student.");
}
}
然后在main 方法里面这样用:
public static void main(String args[]) { Student s = new Student();//上朔造型 Student sss=(Student)(new Person()); sss.print(); }
这样肯定会报错,那么我们要如下进行编程:
public static void main(String args[]) {
Person p = new Student();//上朔造型
if(p instance of Student){
Student sss=(Student)(new Person());//下塑造型
sss.print();
}
只能上塑造型这样才会打印出“this is the student”想一想,用到下塑造型,必须先上塑造型才能下塑造型,那样又有什么意义呢?显然下塑造型不是用在这种地方。那么用在哪里呢?在一声明了一个父类类型数组,且里面存放着父类的不同子类对像的时候,就需要用到下塑造型了。如下例子:
//super Class
public class Person {
public void print() {
out.println("this is the person");
}
}
public class Student extends Person {
public void print() {
out.println("this is the student");
}
public void printHello() {
out.println("say hello from student.");
}
}
public class Farmer extends Person {
public void print() {
System.out.println("the is the farmer.");
}
public void printHello() {
out.println("say hello from farmer.");
}
}
public class Test {
public static void main(String args[]) {
Student s = new Student();
Farmer f = new Farmer();
Teacher t = new Teacher();
Person persons[] = new Person[3];
persons[0] = s;
persons[1] = f;
persons[2] = t;
Student sss = (Student) (new Person());
for (int i = 0; i < 3; i++) {
Person p = persons[i];
if (p instanceof Student) {
Student s1 = (Student) p;
s1.print();
s1.printHello();
} else if (p instanceof Teacher) {
Teacher s1 = (Teacher) p;
s1.print();
s1.printHello();
} else if (p instanceof Farmer) {
Farmer s1 = (Farmer) p;
s1.print();
s1.printHello();
}
}
}
}
这样就可以一一分流出父类数组中的一个个子类对像,并且调用只属天它们自己的方法"printHello()",从而达到了下塑造型的目的
发表评论
-
what the fucking code
2012-04-12 14:08 1212public class MemInfo<T ex ... -
Jps介绍以及解决jps无法查看某个已经启动的java进程问题
2012-03-07 16:41 0Jps介绍以及解决jps无法查看某个已经启 ... -
java.lang.UnsupportedOperationException
2012-02-17 15:01 2142在使用Arrays.asList()后调用add,r ... -
设计模式
2011-10-09 11:05 94623种常用设计模式详细 ... -
JVM调优与监控
2011-09-17 10:57 1693随时记录,方便以后 ... -
A threadpool with limited cache
2011-09-14 10:13 1299As we all know ,we use the ... -
JVM监控工具介绍jstack, jconsole, jinfo, jmap, jdb, jsta
2011-09-10 13:03 1633Java 内存泄露监控工具(一) -- JV ... -
两个shell脚本,希望大家能够用上
2011-09-08 14:46 1114第一个 定时抓取服务器JVM相关信息 #! /bin/s ... -
责任链
2011-09-05 18:26 967其实我一直都不太喜欢去死记硬背那些神马设计模式,但不得不说,你 ... -
jstat的使用方法
2011-08-30 23:30 7692jstat的使用方法 http: ... -
JVM参数配置大全
2011-08-07 09:42 1250JVM参数配置大全[转] 2010-01-14 ... -
JAVA NoClassDefFoundError:
2011-07-24 05:31 49631NoClassDefFoundError: 我 ... -
单实例设计模式
2011-07-15 15:30 806今天讲一下单实例模式 A: public ... -
java关键字:Volatile,Transient,strictfp
2011-06-27 10:04 873Volatile修饰的成员变量 ... -
使用JDK 1.6自带的jvisualvm监控远程服务器中Java程序资源占用情况
2011-05-06 09:36 7740使用JDK 1.6自带的jvisualvm监控远程 ... -
java虚拟机参数设置
2011-05-05 20:07 1155java虚拟机参数设置 收藏 ... -
JAVA性能优化—Sun Hotspot JDK JVM参数设置
2011-05-05 18:31 1299JAVA性能优化—Sun Hotspot JDK JVM参 ... -
[转]JVM内存段分配及启动参数
2011-05-05 17:39 22091. JVM内存段分配及启动参数:J2EE服务器的内 ... -
Jconsole
2011-05-04 15:06 1400Jconsole是JDK自带的一个很好的jvm查看工具 ... -
[转]java.lang.OutOfMemoryError
2011-04-29 16:36 3632http://www.blogjava.net/ld ...
相关推荐
在Java编程语言中,"上塑造型"(Upcasting)和"下塑造型"(Downcasting)是面向对象编程中的重要概念,它们涉及到类的继承关系以及类型转换。本篇文章将详细阐述这两个概念,帮助初学者更好地理解Java中的类型转换。...
虚拟雕塑造型方法,扫描.描图.设计.编修
特别是在汽车塑料内饰件模具造型设计领域,CAD和CAE软件的应用对于提高模具设计的准确性和生产效率起到了至关重要的作用。 CAD技术是利用计算机技术来辅助进行产品的设计和绘图工作,它能够帮助设计师快速、准确地...
小议光造型下的雕塑视象.doc
5. 质量检查:在加工完成后,对每一块铝塑板进行严格的质量检查,不合格产品不得进入下一环节。 五、效果检查与巩固措施 通过实施上述对策,预计能够显著改善超长造型铝塑板的加工质量和效率。小组需要定期进行...
立体构成是艺术设计领域中的一种基础训练,它主要探讨如何在三维空间中创造形态,而“立体构成——纸的造型纸雕塑”则是这种训练的一种具体形式。本课题着重于通过纸张这一媒介来探索和实践立体构成的原理和技巧。 ...
在这个过程中,塑料材料在高温下熔融,通过高压注入模具,冷却后形成最终产品。挤塑成型则是通过挤出机将物料塑化并推送到模具中形成各种截面的制品。吹塑则利用气体压力将热熔型坯吹胀成中空制品,适用于制造有曲线...
《网络游戏-游戏造型捏塑体》是一份关于游戏设计中角色造型的重要参考资料,主要涵盖了游戏行业中的3D建模和角色塑造技术。这份压缩包包含了《游戏造型捏塑体.pdf》这一核心文档,旨在深入探讨如何在游戏中创造独特...
《产品造型材料与塑料表面处理工艺》 在产品设计领域,材料的选择与处理工艺对于产品的美学价值和功能特性起着至关重要的作用。本课件详细介绍了工艺造型材料的美学基础和塑料材料及其表面处理工艺。 首先,我们...
7 GH平面曲线生造型雕塑.gh
攻克超长造型铝塑板加工制作qc
综上所述,中西方雕塑虽然在基本元素上有共通之处,但各自的文化底蕴和审美理念使其在题材选择、精神追求、表现手法和造型特征上呈现出丰富多彩的差异。这些异同不仅是艺术史的有趣对比,也是文化交流和理解的重要...
在本文档中,CAD技术应用于塑料蚊香盒盖的造型设计,设计师在Pro/E软件环境下进行三维建模和造型,这一过程涉及到了结构设计、尺寸确定和外观美化等。 3. 注射模CAE技术:计算机辅助工程(Computer-Aided ...
烟灰缸塑料凸模的几何造型与数控加工设计说明.doc
挤塑板生产用造型机sw18_三维3D设计图纸.zip
在这一背景下,针对塑料挤出模头流道结构CAD系统的研究与应用变得尤为重要。通过运用计算机辅助设计(CAD)技术,可以实现塑料挤出模头流道结构的三维建模。这项研究基于UG(Unigraphics NX)和Visual Studio(VS)...
本文主要介绍了塑料勺子注塑模具的设计过程,涉及到UG和AUTOCAD软件的应用、零件三维造型、工艺分析、浇注系统设计、模架设计等方面的知识点。 零件三维造型 在设计过程中,我们使用了UG和AUTOCAD软件对塑料勺子的...
本定额包含前期艺术造型、硬质成品制安、基座和安装四个阶段的详细规则。艺术造型涉及艺术家根据设计方案进行实体塑造;制模定样则是将造型固定化,通常采用石膏材料;硬质成品制安包括金属锻造、精密铸造、石雕、...
3. **面料知识**:不同的面料有不同的质感、垂坠感和可塑性,理解面料特性是塑造服装造型的关键。例如,丝绸顺滑,适合制作飘逸的裙摆;而棉麻则更适合日常休闲风格。 4. **制图与打版**:在设计过程中,草图绘制和...
模具加工流程通常包括产品造型设计、模具设计、模具加工、试模、尺寸检测、功能测试,直至模具达到预期效果并符合成本要求。在整个过程中,每一步都对最终产品的质量和效率有直接影响。 总结起来,塑料模具在工业...