検索
ホームページJava&#&はじめるJava での書き換えとオーバーロードの概念を区別する方法

Java での書き換えとオーバーロードの概念を区別する方法

オーバーロード

(推奨学習: java エントリー プログラム)

メソッド オーバーロードは手段ですクラスがさまざまな種類のデータを統一された方法で処理できるようにします。パラメータの数や種類が異なる、同じ名前の関数が複数同時に存在します。オーバーロードは、クラス内のポリモーフィズムの現れで​​す。

Java におけるメソッドのオーバーロードとは、クラス内に複数のメソッドを作成できることを意味します。それらのメソッドは同じ名前ですが、異なるパラメータと異なる定義を持ちます。

メソッドを呼び出すとき、メソッドに渡される特定の数値とパラメーターの型を使用して、使用するメソッドが決定されます。これがポリモーフィズムです。

オーバーロードする場合、メソッド名は同じである必要がありますが、パラメーターの型と数は異なり、戻り値の型は同じでも異なっていても構いません。戻り値の型は、オーバーロードされた関数を区別するための基準として使用できません。

親クラスのメソッドがデフォルトで変更されると、同じパッケージ内のサブクラスによってのみオーバーライドできます。同じパッケージ内にない場合はオーバーライドできません。

親クラスのメソッドがプロトタイプ化されると、同じパッケージ内のそのサブクラスによってオーバーライドされるだけでなく、別のパッケージ内のサブクラスによってもオーバーライドされる可能性があります。

オーバーロードされたルール

  • には異なるパラメーター リストが必要です。

  • は異なる戻り値の型を持つことができます。パラメータリストが異なる限り;

  • は異なるアクセス修飾子を持つことができます;

  • は異なる例外をスローすることができます ;

メソッドをオーバーライドするためのルール

  • パラメータ リストはオーバーライドされたメソッドとまったく同じである必要があります。そうでない場合は、リライトとは言えませんが、過負荷。

  • 戻り値の型は、オーバーライドされたメソッドの戻り値の型と常に同じである必要があります。そうでない場合は、オーバーライドと呼ばれることはできず、オーバーロードと呼ばれます。

  • アクセス修飾子の制限は、オーバーライドされたメソッドのアクセス修飾子より大きくする必要があります (パブリック>プロテクト>デフォルト>プライベート)

  • 重いメソッドは、新しいチェック例外、またはオーバーライドされたメソッド宣言よりも広範囲のチェック例外をスローしてはなりません。例: 親クラスのメソッドはチェック例外 IOException を宣言します。このメソッドをオーバーライドする場合、例外をスローすることはできません。スローできるのは IOException のサブクラスの例外のみであり、チェックされていない例外はスローできます。

オーバーロードとリライト (上書き) の特徴

(ビデオ チュートリアルの推奨: java ビデオ チュートリアル)

オーバーロード機能

1. オーバーロードを使用する場合、使用できるのは異なるパラメーター スタイルのみです。たとえば、異なるパラメータの型、異なるパラメータの数、異なるパラメータの順序 (もちろん、同じメソッド内の複数のパラメータの型は異なる必要があります。たとえば、fun(int, float) にすることはできますが、fun(int) にすることはできません。 , int ));

2. アクセス許可、戻り値の型、スローされた例外によってオーバーロードすることはできません;

3. 例外のタイプとメソッドの数はオーバーロードに影響しません;

4. 継承の場合、親クラスで特権アクセスを持つメソッドをサブクラスでオーバーロードすることはできません。定義しても新しいメソッドが定義されるだけで、オーバーロードの効果は得られません。

#オーバーライド機能

1. オーバーライド効果を実現するには、オーバーライドされたメソッドのフラグがオーバーライドされたメソッドのフラグと完全に一致する必要があります。

2 . オーバーライドされたメソッドの戻り値は、オーバーライドされたメソッドの戻り値と一致している必要があります;

3. オーバーライドされたメソッドによってスローされた例外は、オーバーライドされたメソッドまたはそのサブクラスによってスローされた例外と一致している必要があります;

4. オーバーライドされたメソッドをプライベートにすることはできません。プライベートでない場合は、そのサブクラスで新しいメソッドのみが定義され、上書きされません。

概要

overload (オーバーロード)

パラメータの型、数、順序の少なくとも 1 つが異なります。

戻り値が異なるだけのメソッド名をオーバーロードすることはできません。

親クラス、サブクラス、および類似のクラスに存在します。

override (書き換え)

メソッド名、パラメータ、戻り値は同じです。

サブクラス メソッドは、親クラス メソッドのアクセス権を減らすことはできません。

サブクラス メソッドは、親クラス メソッドより多くの例外をスローできません (ただし、サブクラス メソッドは例外をスローできない場合があります)。

親クラスと子クラスの間に存在します。

メソッドはfinalとして定義されており、オーバーライドできません。

以上がJava での書き換えとオーバーロードの概念を区別する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はcsdnで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。