// this is a virtual dispatch, so it can invoke different
// implementation of "printer" method than println("I'm Parent")
// `this` reference is of type Parent, but real type can be Child
println("I'm Parent")
}
println("I'm Child")
}
}
b2JqZWN0IE1haW4gZXh0ZW5kcyBBcHAgewoJY2xhc3MgUGFyZW50IHsKCQlkZWYgZW50cnkoKTogVW5pdCA9CgkJCS8vIHRoaXMgaXMgYSB2aXJ0dWFsIGRpc3BhdGNoLCBzbyBpdCBjYW4gaW52b2tlIGRpZmZlcmVudAoJCQkvLyBpbXBsZW1lbnRhdGlvbiBvZiAicHJpbnRlciIgbWV0aG9kIHRoYW4gcHJpbnRsbigiSSdtIFBhcmVudCIpCgkJCS8vIGB0aGlzYCByZWZlcmVuY2UgaXMgb2YgdHlwZSBQYXJlbnQsIGJ1dCByZWFsIHR5cGUgY2FuIGJlIENoaWxkCgkJCXRoaXMucHJpbnRlcigpIAoJCQoJCWRlZiBwcmludGVyKCk6IFVuaXQgPQoJCQlwcmludGxuKCJJJ20gUGFyZW50IikKCX0KCQoJY2xhc3MgQ2hpbGQgZXh0ZW5kcyBQYXJlbnQgewoJCW92ZXJyaWRlIGRlZiBwcmludGVyKCk6IFVuaXQgPQoJCQlwcmludGxuKCJJJ20gQ2hpbGQiKQoJfQoJCgluZXcgQ2hpbGQoKS5lbnRyeSgpCn0K