java向上转型妙用
2017-07-11 11:16
260 查看
Java向上转型的妙用
下面这段代码摘自《java编程思想》,内容稍有修改class Sharp{ public void erase(){ ... }; public void draw(){ ... }; }
class Circle extends Sharp{ public void erase(){ System.out.println("扩大十倍"); }; public void draw(){ System.out.println("画个圆"); }; ... }
class Triangle extends Sharp{ public void erase(){ System.out.println("缩小十倍"); }; public void draw(){ System.out.println("画个三角"); }; ... }
void doSomething(Sharp sharp){ sharp.erase(); sharp.draw(); }
如此,就可以这样使用doSomething(Sharp sharp):
Circle circle = new Circle(); Triangle triangle = new Triangle(); doSomething(circle); doSomething(triangle);
而,如果我们不使用向上转型,那么我们在编写doSomething的时候就需要做个判断,判断传进来的是cirlcle还是triangle,然后再执行相应的方法。
条件判断在代码编写中司空见惯,经常就是条件反射式的就用上了,可能就让代码变得杂乱不堪。其实如果去探究java的精髓,我们是可以写出更优雅的代码的。
相关文章推荐
- java中的向上转型有什么妙用?
- 关于java向上转型及其妙用
- java中的向上转型有什么妙用?
- java 向上转型和向下转型(转载)
- Java编程:多态和向上转型
- JAVA中的向下转型(downcasting)及泛型与向上转型(upcasting)及RTTI、反射机制
- Java 5.0 泛型之 Java泛型无法向上转型
- JAVA中的向下转型(downcasting)及泛型与向上转型(upcasting)及RTTI、反射机制
- Java:接口回调与向上转型
- java的多态与向上转型
- java中向上转型(upcast)和向下转型(downcast)
- java中向上转型(upcast)和向下转型(downcast)
- 求证:Java向上转型,转型后得到的对象具有导出类(实现类)的方法
- 对Java向上转型的理解
- JAVA中的向上转型与向下转型
- java向上转型 向下转型(upcasting downcasting)
- Java向上转型的思考(运行时绑定)
- JAVA 向上转型 只能掉父类方法?
- java向上转型(转)
- 对Java向上转型的理解