java 父類強制轉換為子類
阿新 • • 發佈:2019-01-07
JAVA中父類只有一種情況可以轉換為子類,就是物件本身引用的就是子類,如:
但是在Android中發現一個另類,一直想不明白,希望大神指點一二!
為何?
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();
為何?