java之对象转型2

王朝学院·作者佚名  2016-05-29
窄屏简体版  字體: 小  |  中  |  大  |  超大  

java之对象转型2public 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; }}

程序运行结果:

总结:

这边文章的基本记录就是:我们创建一个方法,方法的参数是父类的引用。而我们实际当中传的是子类的对象,这样我们就可以多个对象同时使用这一个方法了。然后我们在方法中通过强制类型转换,调用各个对象的各个属性。

通过这种对象的向上转型方法可以使我们的代码可复用性提高一些,但并不是可复用性达到了最好,详情见下一遍文章。

通过对象转型,达到了面向对象的可复用性。就好比:我要盖好一座大楼,然后要在大楼边上加一个厨房,我们只需直接盖厨房就好了。而不是将楼房的主题建筑拆掉,然后重新盖一次楼房。

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航