- 浏览: 429925 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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 1142public class MemInfo<T ex ... -
Jps介绍以及解决jps无法查看某个已经启动的java进程问题
2012-03-07 16:41 0Jps介绍以及解决jps无法查看某个已经启 ... -
java.lang.UnsupportedOperationException
2012-02-17 15:01 2120在使用Arrays.asList()后调用add,r ... -
设计模式
2011-10-09 11:05 91823种常用设计模式详细 ... -
JVM调优与监控
2011-09-17 10:57 1662随时记录,方便以后 ... -
A threadpool with limited cache
2011-09-14 10:13 1270As we all know ,we use the ... -
JVM监控工具介绍jstack, jconsole, jinfo, jmap, jdb, jsta
2011-09-10 13:03 1609Java 内存泄露监控工具(一) -- JV ... -
两个shell脚本,希望大家能够用上
2011-09-08 14:46 1091第一个 定时抓取服务器JVM相关信息 #! /bin/s ... -
责任链
2011-09-05 18:26 942其实我一直都不太喜欢去死记硬背那些神马设计模式,但不得不说,你 ... -
jstat的使用方法
2011-08-30 23:30 7659jstat的使用方法 http: ... -
JVM参数配置大全
2011-08-07 09:42 1214JVM参数配置大全[转] 2010-01-14 ... -
JAVA NoClassDefFoundError:
2011-07-24 05:31 49563NoClassDefFoundError: 我 ... -
单实例设计模式
2011-07-15 15:30 788今天讲一下单实例模式 A: public ... -
java关键字:Volatile,Transient,strictfp
2011-06-27 10:04 842Volatile修饰的成员变量 ... -
使用JDK 1.6自带的jvisualvm监控远程服务器中Java程序资源占用情况
2011-05-06 09:36 7692使用JDK 1.6自带的jvisualvm监控远程 ... -
java虚拟机参数设置
2011-05-05 20:07 1124java虚拟机参数设置 收藏 ... -
JAVA性能优化—Sun Hotspot JDK JVM参数设置
2011-05-05 18:31 1272JAVA性能优化—Sun Hotspot JDK JVM参 ... -
[转]JVM内存段分配及启动参数
2011-05-05 17:39 21791. JVM内存段分配及启动参数:J2EE服务器的内 ... -
Jconsole
2011-05-04 15:06 1373Jconsole是JDK自带的一个很好的jvm查看工具 ... -
[转]java.lang.OutOfMemoryError
2011-04-29 16:36 3609http://www.blogjava.net/ld ...
相关推荐
java 上塑造型和下塑造型代码及注释详解,适合初学者
虚拟雕塑造型方法,扫描.描图.设计.编修
造型铝塑板规格为500*5100,超长的铝塑板容易造成板面的变形、运输难、且图纸中无造型铝塑板加工图,上述难点直接影响了工程的施工质量、进度及成本,为了解决超长造型铝塑板加工制作难题,我部成立现场QC小组,进行...
小议光造型下的雕塑视象.doc
CAD_CAE软件在汽车塑料内饰件模具造型设计中的应用.pdf
攻克超长造型铝塑板加工制作qc
网络游戏-游戏造型捏塑体.zip
产品造型材料与塑料表面处理工艺.pptx
产品造型材料与塑料表面处理工艺课件.pptx
烟灰缸塑料凸模的几何造型与数控加工设计说明.doc
基于快速原型的塑料蚊香盒盖造型设计及模具CAD_CAE.pdf
塑料注塑模具并行设计電話機三維造型與注塑模具設計論文.doc
去料谓之雕,堆料谓之塑,在电脑三维数字化模型上实施交互式堆去料等操作之过程谓之虚拟雕塑(Virtual Sculpting)。JDVirs以现实雕塑为隐喻,其部分功能源于现实雕塑,但又常常高于现实雕塑。JDVirs吸取了图形/图象...
高档车用塑料卡子三维造型及其整套模具设计。
雕塑与建筑同属造型艺术,他们都涉及到三维、空间、实体。建筑的雕塑性是将两者有机的联系起来而得到的一种独特的美感。其造型的雕塑美的基本原则,主要从下面四个方面来阐述:重复与渐变的雕塑性语言、对比与省略...
导热塑料相对于金属材料,具有散热均匀、重量轻,造型设计灵活等特点。 LED产业的快速发展,大大拉动了上游材料业的发展,也进一步促进高端材料领域的突破。LED灯具中用到大量的塑料制件,包括LED芯片的封装元件...
所谓“复合加工技术”,是指把选择性激光熔化叠层造型工艺和高速切削加工工艺融为一体,是一种新型的加工技术。
第三课 课题名称 抽象雕塑 学习领域 造型表现 课时 2课时 教学目标 1通过教学活动让学生了解无论各种材料经过巧妙的构思能创造书抽象的雕塑 通过学习活动学生初步学会运用组合原理进行构思创作立体雕塑作
1.3 塑模具的发展趋势 2 1. 4 塑本设计的研究目的和意义 3 2 塑件的成型工艺性分析 4 2.1 塑件材料的选择及生产要求 4 2.1.1 制品分析 4 2.1.2 塑件的结构和成型工艺的分析 4 2.2 PC的注射成型工艺 5 2.2.1 注射成型...