1. 程式人生 > >java 父類強制轉換為子類

java 父類強制轉換為子類

JAVA中父類只有一種情況可以轉換為子類,就是物件本身引用的就是子類,如:

public class Persion {}

public class Man extends Persion {}

Persion p = new Man();
Man m = (Man) p;


但是在Android中發現一個另類,一直想不明白,希望大神指點一二!


// ViewGroup.LayoutParams
public static class LayoutParams {
...
}

// ViewGroup.MarginLayoutParams:
public static class MarginLayoutParams extends ViewGroup.LayoutParams {
...
}

// 然而這樣是沒有錯的,child.getLayoutParams() 看了很久,都是返回 ViewGroup.LayoutParams的
MarginLayoutParams lp = (MarginLayoutParams) child.getLayoutParams();


為何?