java之对象转型2
2014-10-19 15:29
260 查看
public class TestCasting2{ public static void main(String args[]){ TestCasting2 test2= new TestCasting2(); Animal a = new Animal("animalName"); Dog d = new Dog("dogName","dogColor"); Cat c = new Cat("catName","catColor"); test2.f(a); test2.f(d); test2.f(c); } public void f(Animal a){ //父类引用型参数,达到了面向对象苦苦追求的可复用性,多种类型的对象,共同使用一个方法 System.out.println(a.name); if(a instanceof Dog){ Dog d2 = (Dog)a; //强制转换,然后就可以使用子类当中的属性了 System.out.println(d2.folorColor); }else if(a instanceof Cat){ Cat c2 = (Cat)a; System.out.println(c2.eyesColor); } //这里有过还有一个鸟对象,只需要加一个if判断语句就ok了,不需要重写一个方法public void f2(Bird bird){} } } class Animal{ public String name; public Animal(String name){ this.name = name; } } class Dog extends Animal{ public String folorColor; public Dog(String name,String folorColor){ super(name); this.folorColor = folorColor; } } class Cat extends Animal{ public String eyesColor; public Cat(String name,String eyesColor){ super(name); this.eyesColor = eyesColor; } }
程序运行结果:
总结:
这边文章的基本记录就是:我们创建一个方法,方法的参数是父类的引用。而我们实际当中传的是子类的对象,这样我们就可以多个对象同时使用这一个方法了。然后我们在方法中通过强制类型转换,调用各个对象的各个属性。
通过这种对象的向上转型方法可以使我们的代码可复用性提高一些,但并不是可复用性达到了最好,详情见下一遍文章。
通过对象转型,达到了面向对象的可复用性。就好比:我要盖好一座大楼,然后要在大楼边上加一个厨房,我们只需直接盖厨房就好了。而不是将楼房的主题建筑拆掉,然后重新盖一次楼房。
相关文章推荐
- java中的对象转型
- java学习笔记十一——对象转型
- java作业--用上转型对象实现抽象类的方法
- JAVA笔记六(21-24 对象转型(多态性)、面向对象应用、抽象类和抽象函数)
- java 对象的向上、向下转型
- java基础----对象的上转型对象
- Java菜鸟学习笔记--面向对象篇(十八):对象转型&多态
- java基础--对象转型和多态
- java 对象转型
- java 对象的向上转型
- Java笔记(七) Object类与对象转型
- java例程练习(对象转型及instanceof关键字)
- 再学 JAVA基础(5)对象转型,多态。【子类对象的实例化过程】
- java对象的转型(第21集)
- Java中多态 / 上转型对象 和接口回调的对比
- 关于JAVA对象转型
- java 对象的向下转型
- java中的对象转型
- 实验三 继承,上转型对象 之 HardWork.java
- Java菜鸟学习笔记--面向对象篇(十八):对象转型&多态