public と宣言されているスーパークラス メソッドがオーバーライドされるという概念を理解しています。ただし、サブクラスのメソッドの代わりにスーパークラスのメソッドを呼び出す方法があるかどうかを知りたいです。たとえばtoString
、スーパークラスの下では特定のデータ フィールドが出力さtoString
れ、サブクラスの下では別のデータ フィールド セットが出力されます。両方のメソッドを呼び出したい。それを行う方法はありますか?
4 に答える
2
サブクラス内からスーパークラスの toString() メソッドを呼び出すには、次のように呼び出します。
super.toString();
したがって、オブジェクトのメソッドがそのスーパークラスのメソッドを同時にtoString()
呼び出すようにしたい場合は、次のようにします。toString()
String str = // whatever the toString() of this object is
return str + super.toString();
そして早速!
于 2013-04-16T04:00:38.527 に答える
2
子クラスのメソッド (オーバーライドされている)super.toString()
から呼び出してスーパーのバージョンを呼び出し、次のステートメントで子バージョンを呼び出すことができます
于 2013-04-16T03:59:42.127 に答える
1
子が super.toString() を呼び出す場所で、子の toString() を呼び出す必要があります。
于 2013-04-16T04:00:49.223 に答える
1
サブクラスからいつでも super.toString() を呼び出して、スーパー クラス メソッドを呼び出すことができます。「スーパー」で明示的に呼び出さないと、「最後に」オーバーライドされたバージョンが呼び出されます。これはポリモーフィズムと呼ばれます。
于 2013-04-16T04:10:34.347 に答える