Java の皆さん、継承されたクラスのメソッドがオーバーライドされるコードがあるとします。cat
class Pet { String name; String age; String getString() { return "Домашнее животное"; } } class Cat extends Pet { String getString() { return "Кот Рыжик"; } } public static void main(String[] args) { Pet cat = new Cat(); cat.getString(); }
変数に対してどのバージョンの getString() メソッドが呼び出されるのか教えてください。講義で読んだのですが、オブジェクトのメソッドは、オブジェクトの実際の型に関係なく、そのオブジェクトへの参照型として使用されたクラスに存在する場合にのみ呼び出すことができます。これは、この場合 Pet クラスのメソッドが呼び出されるということですか、それともメソッドをオーバーライドする場合にはオブジェクト クラスのメソッドが呼び出されるということでしょうか? ありがとう。
GO TO FULL VERSION