title: would `as` enable polymorphism? would pass a inherited class to a method which takes a base class enable polymorphism?
body: <p>Fist of all, I will use <code>virtual</code> and <code>override</code></p>
  
  <p>for example, base class A has method <code>A.do()</code>, inherited class B has <code>B.do()</code> which overrides A's.</p>
  
  <p>if I call <code>(B as A).do()</code>, which <code>do()</code> would it execute?</p>
  
  <p>or, if there is a method <code>void mymethod(A a) {a.do()}</code>, now I call it by <code>B b; mymethod(b)</code>, would it execute <code>b.do()</code>? </p>