ホームページ  >  記事  >  バックエンド開発  >  PHP および JAVA_PHP のオーバーロードとオーバーライドの概要チュートリアル

PHP および JAVA_PHP のオーバーロードとオーバーライドの概要チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:20:181523ブラウズ

オーバーロード: 同じクラス内で、同じ名前で戻り値やパラメーターの型が異なる関数をオーバーロードと呼びます。
オーバーライド: 同じ名前、同じ戻り値の型、同じパラメーターを持つ関数はオーバーライドと呼ばれます。これは、サブクラスによる親クラスのメソッドのオーバーライドを指します。
PHP はメソッドと演算子のオーバーロードをサポートしていません。 JAVA は演算子のオーバーロードをサポートしていません (ただし、「+」は実際には演算子のオーバーロードです)。

コードをコピーします コードは次のとおりです:

Class Father {
public function fmeth1() {
echo "fmeth1()...
"
}
//public function fmeth1($str1) {
// echo "fmeth1() with $str1...
"
//}
}
Class Son extends Father {
public function fmeth1() {
echo "fmeth1 () in Son...
"
}
}
$s->fmeth1()> の 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; } C. プライベート int メソッド 1(int a, long b) { return 0; }
D. public short メソッド 1(int a, int b) { return 0; }
E. return 0; }

310-035 の質問については、標準的な答えは A と C です

A はオーバーライドであり、アクセスが protected --->public から拡張されているため、正解です。
B と D もオーバーライドです。B は protected --->private から狭くなり、D の戻り値の型が変更されたため、すべて間違っています。
C はオーバーロードであり、アクセスの幅と戻り値の型は関係ないので、これは正しいです。
E はオーバーライドですが、静的メソッドはスーパークラスからインスタンスメソッドを隠すことができないため、静的が追加されています。 したがって、それは間違っています。
それではACを選択してください。
親クラスを継承し、親クラスのメソッドをオーバーライドするサブクラスはオーバーライド、つまりリライト、オーバーライト、オーバーライドと呼ばれます。
同じ名前でパラメータが異なる複数のメソッドを持つサブクラスはオーバーロード、つまりヘビー(ゾン)ロードと呼ばれます。 overload


オーバーロードとは:
複数のメソッドが同じ名前を持ち、異なるパラメーターを含む場合に発生します
その後、異なるパラメーターを使用して呼び出すと、実際には異なるメソッドが呼び出されます
実際には、同じ名前で異なるパラメーターを持つ 2 つのメソッドが存在することも理解できます。 !


上書き (OVERWRITE) 注

元のメソッドの「可視性」を減らすことはできません

異なる戻り値の型はメソッドのオーバーライドを構成できません

オーバーロード (OVERLOAD) 注
異なるパラメーターのみがオーバーロードを構成できます



http://www.bkjia.com/PHPjc/325084.html

www.bkjia.com
tru​​e

http://www.bkjia.com/PHPjc/325084.html技術記事オーバーロード: 同じクラス内で、同じ名前で戻り値やパラメーターの型が異なる関数をオーバーロードと呼びます。 オーバーライド: 同じ名前、同じ戻り値の型、および同じパラメーターを持つ関数はオーバーライドと呼ばれます。 ...を指します
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。