多態性メンバーの特性

Nov 26, 2016 am 10:14 AM
ポリモーフィズム

⒈ポリモーフィズムにおける非静的メンバー関数の特徴:
①コンパイル時: 参照変数が属するクラスに呼び出しメソッドがあるかどうかを確認します。存在する場合、コンパイルは成功します。そうでない場合、コンパイルは失敗します。
② 実行時: オブジェクトが属するクラスに呼び出されるメソッドがあるかどうかを確認します。
------------------------------------------------- -
//要するに: メンバー関数が呼び出されるとき、コンパイル時には左側を、実行時には右側を確認します。 //
---------------------------------------------- --- ---
2. ポリモーフィズムにおける同名のメンバ変数の特徴:(追記:異なる名前は検証されていません)
コンパイルかどうかに関係なく、左側(参照変数が属するクラス)を参照してください。実行中
3. ポリモーフィズムにおける静的メンバー 関数の特徴:
コンパイル、実行に関わらず、左側(参照変数が属するクラス)を参照
例:

Class Fu 
{ 
int num=1;
public void method1()
{
System.out.println("fu_1");
}
public void method3()
{
System.out.println("fu_3");
}
//静态方法(包括变量)不所属于对象,它绑定于所属的类,会在内存中提前加载出来
public static void method4()
{
System.out.println("fu_4");
}
}
Class Zi extends Fu
{
int num=2;
public void method1()
{
System.out.println("zi_1");
}
public void method2()
{
System.out.println("zi_2");
}
public static void method4()
{
System.out.println("zi_4");
}
}
Class Duotaitest
{
public static void main (String [] args)
{
Fu f=new Zi ();
f.method1();
//f.method2(); 此行代码若存在,则编译失败,Fu类中没此方法
f.method3();
f.method4();
System.out.println(f.num);
Zi z= new Zi();
System.out.println(z.num);
}
/* 
运行结果: zi_1
fu_3
fu_4 //静态方法不能被子类重写覆盖,若想调用子类中的静态方法(一般没这么用的,只是面试会用到)Zi.method4(类名.方法名)
1
2
*/
}
ログイン後にコピー



このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

MySQL でデータのポリモーフィック ストレージと多次元クエリを実装するにはどうすればよいですか? MySQL でデータのポリモーフィック ストレージと多次元クエリを実装するにはどうすればよいですか? Jul 31, 2023 pm 09:12 PM

MySQL でデータのポリモーフィック ストレージと多次元クエリを実装するにはどうすればよいですか?実際のアプリケーション開発では、データの多態性ストレージと多次元クエリが非常に一般的な要件です。一般的に使用されるリレーショナル データベース管理システムとして、MySQL は多態性ストレージと多次元クエリを実装するためのさまざまな方法を提供します。この記事では、MySQL を使用してポリモーフィック ストレージとデータの多次元クエリを実装する方法を紹介し、読者がそれをすぐに理解して使用できるように、対応するコード例を提供します。 1. ポリモーフィック ストレージ ポリモーフィック ストレージとは、異なる種類のデータを同じフィールドに格納するテクノロジーを指します。

C++ 仮想関数テーブルとポリモーフィック実装、メモリの無駄を避ける方法 C++ 仮想関数テーブルとポリモーフィック実装、メモリの無駄を避ける方法 May 31, 2024 pm 07:03 PM

仮想基本クラスは、追加の vtable を作成せずに複数の基本クラスからの継承を許可することで、vtable のメモリ オーバーヘッドを最適化します。最適化されたコードでは、形状基本クラスに仮想関数テーブルがなくなり、円クラスと長方形クラスが同じ仮想関数テーブルを共有するため、メモリ消費量が削減されます。

PHP でポリモーフィズムと継承を使用してデータ型を処理する方法 PHP でポリモーフィズムと継承を使用してデータ型を処理する方法 Jul 15, 2023 pm 07:41 PM

PHP でデータ型を処理するためにポリモーフィズムと継承を使用する方法 はじめに: PHP では、ポリモーフィズムと継承は 2 つの重要なオブジェクト指向プログラミング (OOP) 概念です。ポリモーフィズムと継承を使用することで、さまざまなデータ型をより柔軟に処理できます。この記事では、ポリモーフィズムと継承を使用して PHP でデータ型を処理する方法を紹介し、コード例を通じてその実際の応用例を示します。 1. 継承の基本概念 継承はオブジェクト指向プログラミングにおける重要な概念であり、親クラスのプロパティとメソッドを継承できるクラスを作成できます。

継承、ポリモーフィズム、インターフェイス: PHP の 3 つの主要なオブジェクト指向機能 継承、ポリモーフィズム、インターフェイス: PHP の 3 つの主要なオブジェクト指向機能 May 11, 2023 pm 03:45 PM

PHP は、PHP5 以降、オブジェクト指向プログラミング (OOP) をサポートするサーバー側プログラミング言語です。 OOP の中心的な考え方は、データと動作をオブジェクトにカプセル化して、プログラムの保守性と拡張性を向上させることです。 PHP では、オブジェクト指向プログラミングには、継承、ポリモーフィズム、インターフェイスという 3 つの主要な特徴があります。 1. 継承 継承とは、クラスが別のクラスからプロパティとメソッドを継承できることを意味します。継承されたクラスは親クラスまたは基本クラスと呼ばれ、継承されたクラスはサブクラスまたは派生クラスと呼ばれます。サブクラスは、継承を通じて親クラスのプロパティとメソッドを取得でき、

「PHP によるオブジェクト指向プログラミング入門: 概念から実践まで」 「PHP によるオブジェクト指向プログラミング入門: 概念から実践まで」 Feb 25, 2024 pm 09:04 PM

オブジェクト指向プログラミングとは何ですか?オブジェクト指向プログラミング (OOP) は、現実世界のエンティティをクラスに抽象化し、オブジェクトを使用してこれらのエンティティを表すプログラミング パラダイムです。クラスはオブジェクトのプロパティと動作を定義し、オブジェクトはクラスをインスタンス化します。 OOP の主な利点は、コードの理解、保守、再利用が容易になることです。 OOP の基本概念 OOP の主な概念には、クラス、オブジェクト、プロパティ、メソッドが含まれます。クラスはオブジェクトの設計図であり、オブジェクトのプロパティと動作を定義します。オブジェクトはクラスのインスタンスであり、クラスのすべてのプロパティと動作を備えています。プロパティは、データを保存できるオブジェクトの特性です。メソッドは、オブジェクトのデータを操作できるオブジェクトの関数です。 OOP の利点 OOP の主な利点は次のとおりです。 再利用性: OOP はコードをより高度なものにすることができます。

golang 関数のオーバーロードとポリモーフィズムの違いは何ですか? golang 関数のオーバーロードとポリモーフィズムの違いは何ですか? Apr 30, 2024 am 09:30 AM

Go 言語ではダックタイピングが採用され、実際の型に基づいて値の型が決定されるため、関数のオーバーロードはサポートされていません。ポリモーフィズムはインターフェイスの型とメソッド呼び出しを通じて実現され、異なるカテゴリのオブジェクトも同じように応答できます。具体的には、Go 言語はインターフェイスを定義し、これらのメソッドを実装することで、異なる型のオブジェクトに同様の動作をさせることができ、ポリモーフィズムをサポートします。

PHP におけるポリモーフィズムとディスパッチ機構の関係 PHP におけるポリモーフィズムとディスパッチ機構の関係 Jul 07, 2023 pm 05:45 PM

PHP におけるポリモーフィズムとディスパッチ メカニズムの関係 オブジェクト指向プログラミングにおいて、ポリモーフィズムは、異なるオブジェクトが同じメッセージに対して異なる応答を行うことを可能にする強力な概念です。強力な開発言語として、PHP はポリモーフィズムもサポートしており、それに密接に関係しているのがディスパッチ メカニズムです。この記事では、コード例を使用して、PHP におけるポリモーフィズムとディスパッチ メカニズムの関係を調べます。まず、ポリモーフィズムとは何かを理解しましょう。ポリモーフィズムとは、オブジェクトが実際の型に応じて対応するメソッドを呼び出すことができることを意味します。ポリモーフィズムを使用すると、プログラムは特定のオブジェクトに基づいて作成できます。

PHP オブジェクト指向プログラミングにおけるポリモーフィズムとインターフェイスの関係を分析する PHP オブジェクト指向プログラミングにおけるポリモーフィズムとインターフェイスの関係を分析する Aug 10, 2023 pm 06:09 PM

PHP オブジェクト指向プログラミングにおけるポリモーフィズムとインターフェイスの関係 PHP オブジェクト指向プログラミングにおいて、異なる型のオブジェクトを統一的に使用できるようにするポリモーフィズム (Polymorphism) は重要な概念です。ポリモーフィズムはインターフェイス (Interface) の実装によって実現されますが、この記事ではコード例を使用して、PHP オブジェクト指向プログラミングにおけるポリモーフィズムとインターフェイスの関係を分析します。 PHP では、インターフェイスは一連のメソッドを定義する抽象構造であり、クラスはインターフェイスを実装することによって、特定の動作機能で自身を表現します。インターフェース

See all articles