向上造型(向下造型)

合理运用向上造型 ,能够减少代码量,优化代码.总结如下:

1,向上造型

类型提升,自动类型转换

基本类型自动类型转换

     byte → short → int → long → float → double                              ↑                            char

引用类型自动类型转换(向上造型)

小类型 → 自动转换 → 大类型     //父类引用调用子类对象

exp        Dog dog=new Dog();   Animal animal=dog;  

 等价于

 Animal animal=new Dog();

package test01;import org.omg.CORBA.PUBLIC_MEMBER;public class Test01 {   public static void main(String[] args){ //----------------使用向上造型-------------     Test01 test=new Test01();     test.display(new LcdDisplayer ());     test.display(new HwDisplayer()); //---------------不使用向上造型----------------------     test.display(new LcdDisplayer());     test.display(new HwDisplayer());   } //--------------向上造型,相同的方法只写一遍,简化了代码量----------------   public void display(Displayer dis){     dis.displayText();     dis.displayGraph();   } //--------------不使用向上造型,相同的方法要重复写--------------------   public void display(LcdDisplayer dis){     dis.displayText();     dis.displayGraph();   }     public void display(HwDisplayer dis){     dis.displayText();     dis.displayGraph();   }}//-----------------------------------class Displayer{//显示器 父类   public void displayText(){       System.out.println("显示文字");   }   public void displayGraph(){     System.out.println("显示图片");   }}//----------------------------------------class LcdDisplayer extends Displayer{//子类.继承父类   public void displayText(){     System.out.println("LCD显示文字");   }   public void displayGraph(){     System.out.println("LCD显示图片");   }   public void other(){     System.out.println("子类B1方法");   }}//--------------------------------------------class HwDisplayer extends Displayer {//子类,继承父类   public void displayText(){     System.out.println("HW显示文字");   }   public void displayGraph(){     System.out.println("HW显示图片");   }}

相关推荐