////////////////////////////////////////////////////////////////////////////////
//  << j244.java >>
//
//  クラス(4):継承(オーバーライド、多態性)
//
//   通常、親クラスの変数で親クラスのオブジェクトを扱い、子クラスの変数で
//  子クラスのオブジェクトを扱う。
//    ところが、子クラスのオブジェクトは親クラスの変数としても扱うことができる。
//
//    Child objc = new Child();
//        Parent objp = objc;
//
//  すなわち、同じオブジェクトが、変数objcからChildクラスと見られ、変数objp
//  からParentクラスと見られる。
//  このことを、オブジェクトの多態性(ポリモーフィズム、Polymorphism)という。
//  複数の形態をもつという意味である。
//
// ●変数objpの性質
//
//  (性質1) 変数objpから子クラスで新たに定義されたメンバ(フィールド、メソッド)
//             にアクセスすることはできない。
//  (性質2) 親クラスと子クラスが同じフィールドaをもつとき、objp.aで親クラスの
//          フィールドが参照される。
//  (性質3) 親クラスで定義されたメソッドm()が、子クラスでオーバーライドされて
//          いるとき、objp.m()で呼び出されるのは、親クラスで定義された
//             メソッドではなく、子クラスでオーバーライドされたメソッドになる。
//
///////////////////////////////////////////////////////////////////////////////