Abstract Class X { abstract fun1, abstract fun2, abstract property1, abstract property2} 
Class A : X { override fun1, override fun2, override property1, override property2} 
Class B : X { override fun1, override fun2, override property1, override property2} 调用的时候: 
X x = new A(); { x.fun1();   void fun {…… = x.property1; ……}} 
X x = new B(); { x.fun1();   void fun {…… = x.property1; ……}} 
或者 
{ void fun1 (X x){……};  
void fun2 {X a = new A(); fun1(a); ……};  
void fun3 {X b = new B(); fun1(b); ……};  
} 这样的话,我把要调用A、B 的地方,都传一个 (X x) 参数进去,而不用传(A x)、(B x)这样可以把调用A、B两份代码合成调用(X x)一份代码,大家认为可以吗?