オーバーロード: 同じクラス内で、同じ名前で戻り値やパラメーターの型が異なる関数をオーバーロードと呼びます。
オーバーライド: 同じ名前、同じ戻り値の型、および同じパラメーターを持つ関数はオーバーライドと呼ばれます。これは、サブクラスによる親クラスのメソッドのオーバーライドを指します。
PHP はメソッドと演算子のオーバーロードをサポートしていません。 JAVA は演算子のオーバーロードをサポートしていません (ただし、「 」は実際には演算子のオーバーロードです)。
コードをコピー コードは次のとおりです:
Class Father {
public function fmeth1() {
echo "fmeth1()...
";
}
// public function fmeth1($str1) {
// $ で "fmeth1()" をエコーします。 str1.. .
";
//}
}
クラス Son extends Father {
public function fmeth1() {
echo "fmeth1() in Son...
}
}
$s=new Son();
$s->fmeth1();
?>gt;
where 親クラスの fmeth1 メソッドはオーバーロードできません。
Java のオーバーロードとオーバーライド カバレッジの簡単な説明 Java 言語仕様では、メソッドの特性にはメソッドの名前と番号のみが含まれます。パラメータの型は含まれますが、メソッドの戻り値の型、パラメータの名前、スローされる例外は含まれません。 Java コンパイラはメソッドのオーバーロードをチェックするときに、これらの条件に基づいて 2 つのメソッドがオーバーロードされたメソッドであるかどうかを判断します。ただし、Java コンパイラがメソッドの置換をチェックするとき、戻り値の型と 2 つのメソッド (スーパータイプとサブタイプ) によってスローされる例外が同じかどうかをさらにチェックします。
質問番号: 3
コードをコピー コードは次のとおりです:
class A {
protected int method1(int a, int b) { return 0; }
}
クラス A を拡張するクラスで有効なものはどれですか? (2 つ選択してください)
A. public int method1 (int a, int b) { return 0; }
B. private int method1(int a, int b) { return 0; }
C. { return 0 ; }
D. public short method1(int a, int b) { return 0; }
E. static protected int method1(int a, int b) { return 0; 🎜>310 -035の質問に対して、標準的な答えはA、Cです
Aはオーバーライドで、アクセスがprotected--->publicから拡張されているので正解です。
B と D もオーバーライドです。B は protected--->private から狭くなり、D の戻り値の型が変更されているため、すべて間違っています。
C はオーバーロードです。アクセスの幅と戻り値の型は関係ないので、これは正しいです。
E はオーバーライドですが、静的メソッドはスーパークラスからインスタンスメソッドを隠すことができないため、静的が追加されています。したがって、それは間違っています。
それでは、AC を選択してください。
親クラスを継承し、そのメソッドをオーバーライドするサブクラスは、オーバーライドと呼ばれます - リライト、オーバーライト、オーバーライド
同じ名前でパラメータが異なる複数のメソッドを持つサブクラスは、オーバーロードと呼ばれます - 重い (zhong) ロード、オーバーロード
オーバーロードは次のとおりです:
複数のメソッドが同じ名前を持ちますが、異なるパラメーターが含まれている場合に生成されます
その後、異なるパラメーターを持つ呼び出しは実際には異なるメソッドを呼び出します
また、次のようなものがあることも理解できます。実際には、名前は同じですがパラメータが異なる 2 つのメソッドです!
上書き (OVERWRITE)
は元のメソッドの「可視性」を減らすことができないことに注意してください
異なる戻り値型はメソッド オーバーライドを構成できません
オーバーロード (OVERLOAD) 注
オーバーロードを構成できるのは、異なるパラメーターのみです