合理運用向上造型 ,能夠減少代碼量,優化代碼.總結如下: 1,向上造型 類型提升,自動類型轉換 基本類型自動類型轉換 byte → short → int → long → float → double ↑ char 引用類型自動類型轉換(向上造型) 小類型 → 自動轉換 → 大類型 //父類引用調 ...
合理運用向上造型 ,能夠減少代碼量,優化代碼.總結如下:
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顯示圖片");
}
}