オブジェクト指向 (インターフェース、ポリモーフィズム)
インターフェース
(1) 抽象クラスのメソッドが抽象である場合、Java は新しい形式の表現、インターフェースを提供します。インターフェースは関数のコレクションです。インターフェースはオブジェクトを作成できません
(2) 形式
。親インターフェイス: public インターフェイス Tnter{
}
サブクラス: public class interImpimplements Itner{
}
インターフェイスの使用法
1. インターフェイスはオブジェクトを作成できません
2. インターフェイスを実装するための実装クラスを定義します
実装 キーワード 実装
3. 抽象メソッドをオーバーライドする
4. 実装クラスのオブジェクトを作成し、メソッドを呼び出す
インターフェースの特徴
1. 抽象メソッドによる変更の必要がない
2. クラスはインターフェースを実装し、単一または複数の方法で実装できる
3. インターフェイスは、単一継承または多重継承のいずれかでインターフェイスを継承できます
4. インターフェイスと親クラスの関数は繰り返すことができます。つまり、特定の関数を持たなければなりません
インターフェイスのメンバー特性
メンバー変数 静的定数
固定変更 シンボル public static Final
記述してもしなくても、この修飾子は変更されません
メンバーメソッド
固定修飾子 public abstract
記述してもしなくても、この修飾子は変更されません
Abstract クラスとインターフェースの違い
1. メンバーの違い
抽象クラス:
メンバー変数: 変数または定数のいずれかになります
コンストラクター メソッド: サブクラスのインスタンス化のためのコンストラクター メソッドがあります
メンバー メソッド: 抽象にすることもできます はい、非抽象にすることもできます-abstract
インターフェース:
メンバー変数: 定数のみ可能
デフォルト修飾子: public static Final
メンバーメソッド: abstract のみ可能
デフォルト修飾子: public abstract
推奨: デフォルト修飾子 常に手動で与えてください
2.クラスとインターフェースの違い
クラスとクラス:
継承関係、単一継承のみ、多層継承可能
クラスとインターフェース:
実装関係、個別に実装可能、または複数実装可能
クラス1 つのクラスを継承し、同時に複数のインターフェイスを実装することもできます
インターフェイスとインターフェイス:
継承関係、単一継承または多重継承
3. 具現化された概念は異なります
抽象クラスで定義されています それらはすべて共通の内容です継承システム
インターフェースは関数のコレクション、システムの追加関数、および公開ルールです
親クラス/インターフェース参照を使用するすべての場所で、そのサブクラス/実装クラス オブジェクトを渡すことができます
ポリモーフィズム
同じオブジェクト、異なる時点で異なる状態が反映される
例: 水 (水、氷、水蒸気)
cat (猫、動物)
前提条件:
A: 継承または実装関係がある
B: 系統的な書き換え
C: 親クラスから子クラスのオブジェクトへの参照がある
ポリモーフィズムでのメンバーの使用の特徴
Fu fz=new Zi();
ポリモーフィズムでは、すべての式が親クラスである
式は、メソッドが呼び出されると、サブクラスによって書き換えられたメソッドが実行されます
1. メンバー変数
コンパイル時に左側を見て、実行時に左側を見てください
2. メンバーメソッド
コンパイル時に左側を見て、実行時に右側を見てください
1 class Fu{ 2 int num=4; 3 void show(){ 4 system.out.println("showFu") 5 } 6 7 } 8 class Zi extends Fu{ 9 10 int num=5;11 void show(){12 system.out.println("showZi");13 }14 }15 class T{16 public static void main(String args[]){17 Fu f=new Zi();18 system.out.println(f.num);19 f.show();20 }21 }
ポリモーフィズムにおける変換
1. 上方変換
サブクラスオブジェクトを親クラス(インターフェース)の参照に代入し、自動的にpromotion
int a=0;
Fu fz=newと入力します。 Zi();
2 .Downcast
親クラス (インターフェイス) の参照をサブクラス オブジェクトに強制します
double b=10.0;
int a=(int)b;
Fu fz=new Zi();
Zi zi=(Zi )fz;
注: Fu fu=new Fu() はダウンキャストできず、ClassCastException 型変換例外が報告されます
ポリモーフィズムの利点と欠点
1. 利点
プログラムの保守性と拡張性が向上します
2 。欠点
サブクラスの特殊な内容は適用できない
使用したい場合は、サブクラスオブジェクトをダウンキャストするか再作成する必要があります
3 つの形式のポリモーフィズム
1. 特定のクラスポリモーフィズムの親クラス変数名 = new child Class()
2. 抽象クラス多態性 親抽象クラス変数名=new Subclass()
3. インタフェース多態性 インタフェース変数名=new 実装クラス()
instanceofキーワード
書式:オブジェクト名instanceofクラス名
戻り値:true false
関数: 指定されたオブジェクトが指定されたクラスによって作成されたオブジェクトであるかどうかを判断します
Animal a1=new Cat();
Animal a2=new Dog();
Method(a1)
public static void method(Animal a){
if(a instanceof Cat){
下方変換
cat 固有のメソッドを呼び出す
}
}
以上がオブジェクト指向 (インターフェース、ポリモーフィズム)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









パソコンを組み立てる際、設置作業は簡単ですが、誤ってCPUラジエーターの電源線をSYS_FANに差し込んでしまうなど、配線に問題が発生することが多く、ファンは回転しますが、ファンが回転しない場合があります。コンピュータの電源がオンになると、F1 エラー「CPUFanError」が発生し、CPU クーラーがインテリジェントに速度を調整できなくなります。コンピューターのマザーボード上の CPU_FAN、SYS_FAN、CHA_FAN、および CPU_OPT インターフェイスに関する一般的な知識を共有しましょう。コンピュータのマザーボード上の CPU_FAN、SYS_FAN、CHA_FAN、および CPU_OPT インターフェイスに関する一般科学 1. CPU_FANCPU_FAN は、CPU ラジエーター専用のインターフェイスであり、12V で動作します。

最新の効率的なプログラミング言語である Go 言語には、開発者が高品質で保守可能なコードを作成するのに役立つ豊富なプログラミング パラダイムと設計パターンがあります。この記事では、Go 言語の一般的なプログラミング パラダイムと設計パターンを紹介し、具体的なコード例を示します。 1. オブジェクト指向プログラミング Go 言語では、構造体とメソッドを使用してオブジェクト指向プログラミングを実装できます。構造を定義し、その構造にメソッドをバインドすることにより、データのカプセル化と動作バインディングのオブジェクト指向機能を実現できます。パッケージマイニ

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

MySQL クエリ結果の配列をオブジェクトに変換する方法は次のとおりです。 空のオブジェクト配列を作成します。結果の配列をループし、行ごとに新しいオブジェクトを作成します。 foreach ループを使用して、各行のキーと値のペアを新しいオブジェクトの対応するプロパティに割り当てます。新しいオブジェクトをオブジェクト配列に追加します。データベース接続を閉じます。

PHP インターフェースの概要とその定義方法 PHP は、Web 開発で広く使用されているオープンソースのスクリプト言語であり、柔軟性があり、シンプルで強力です。 PHP では、インターフェイスは複数のクラス間で共通のメソッドを定義し、ポリモーフィズムを実現し、コードをより柔軟で再利用可能にするツールです。この記事では、PHP インターフェイスの概念とその定義方法を紹介し、その使用法を示す具体的なコード例を示します。 1. PHP インターフェイスの概念 インターフェイスはオブジェクト指向プログラミングにおいて重要な役割を果たし、クラス アプリケーションを定義します。

エラーの原因は Python にあり、Tornado で NotImplementedError() がスローされるのは、抽象メソッドまたはインターフェイスが実装されていないことが原因である可能性があります。これらのメソッドまたはインターフェイスは親クラスで宣言されますが、子クラスでは実装されません。サブクラスが適切に動作するには、これらのメソッドまたはインターフェイスを実装する必要があります。この問題を解決するには、親クラスで宣言した抽象メソッドやインターフェイスを子クラスに実装します。別のクラスから継承するクラスを使用していてこのエラーが発生した場合は、親クラスで宣言されたすべての抽象メソッドを子クラスに実装する必要があります。インターフェイスを使用していてこのエラーが発生した場合は、インターフェイスで宣言されているすべてのメソッドを、インターフェイスを実装するクラスに実装する必要があります。どちらかわからない場合は、

PHP では、配列は順序付けられたシーケンスであり、要素はインデックスによってアクセスされます。オブジェクトは、new キーワードによって作成されたプロパティとメソッドを持つエンティティです。配列へのアクセスはインデックス経由で、オブジェクトへのアクセスはプロパティ/メソッド経由で行われます。配列値が渡され、オブジェクト参照が渡されます。

PHP の Request オブジェクトは、クライアントからサーバーに送信される HTTP リクエストを処理するために使用されるオブジェクトです。 Request オブジェクトを通じて、リクエストを処理して応答するために、リクエスト メソッド、リクエスト ヘッダー情報、リクエスト パラメータなどのクライアントのリクエスト情報を取得できます。 PHP では、$_REQUEST、$_GET、$_POST などのグローバル変数を使用して、要求された情報を取得できますが、これらの変数はオブジェクトではなく配列です。リクエスト情報をより柔軟かつ便利に処理するために、次のことができます。
