セクション 10 抽象メソッドと抽象クラス [10]
オブジェクト指向プログラムは、クラスの階層構造を通じて構築されます。PHP などの単一継承言語では、クラスの継承は 1 つ以上のサブクラスを持ち、各サブクラスは 1 つ以上の下位レベルを継承します。もちろん、適切に設計されたシステムでは、アプリケーション コードがルートで動作するように設計されている場合、各ルート クラスに便利なインターフェイスが必要です。
抽象メソッドは、サブクラスの通常のメソッドと同様に、プレースホルダー (場所を占めますが、効果はありません) であり、一般的なメソッドとは異なります。メソッド - クラス内に 1 つ以上の抽象メソッドが存在する場合、そのクラスは抽象クラスをインスタンス化することができず、それらを継承してからサブクラスをインスタンス化することもできます。サブクラスのテンプレートとしての抽象クラス。
すべての抽象メソッドをオーバーライドすると、サブクラスは通常のクラスになります。すべてのメソッドがオーバーライドされない場合でも、クラスに抽象メソッドが含まれる場合、サブクラスは抽象クラスのままです。 (1 つしかない場合でも)、class キーワードの前に
抽象メソッドを宣言する構文は、一般メソッドを宣言する構文とは異なります。 . 抽象メソッドは、一般的なメソッドのように中括弧 {} で囲まれた本体を持たず、セミコロン;で終わります。
例 6.13 では、getArea メソッドを含むクラス Shape を定義しました。しかし、形状が分からなければ図形の面積を決定することは不可能であるため、getArea メソッドを抽象メソッドとして宣言しました。Shape オブジェクトをインスタンス化することはできませんが、それを継承したり、次のように式で使用したりできます。例 6.13.
抽象メソッドのみを含むクラスを作成する場合、PHP ではインターフェースを定義します。抽象クラスの代わりにインターフェースと実装を使用できます。 extends を使用してクラス定義を記述したり、インターフェイスを使用したりできます。これらの 2 つのメソッドは必要に応じてカスタマイズできます。
/*注:
2 つのメソッドは以下を参照します。
1. 抽象クラス aaa{} (aaa には抽象メソッドのみがあり、一般的なメソッドはないことに注意してください)
class bbb extends aaa{} (aaa の抽象メソッドをオーバーライドします) bbb)
2. インターフェース aaa{}
クラス bbb は aaa{} を実装します (aaa の抽象メソッドを bbb に上書きします)
* /
リスト 6.13 抽象クラス
//抽象ルートクラス抽象ルートクラス
抽象クラス Shape
{
抽象関数 getArea(); file://抽象メソッドを定義します
}
//抽象子クラス 抽象サブクラス
抽象クラス Polygon extends Shape file://Polygon
{
抽象関数 getNumberOfSides()
}
//具体的なクラス エンティティclass Triangle class
class Triangle extends Polygon
{
public $base;
public $height;
public function getArea() file://オーバーライド面積計算メソッド
{
return(($this->base * $this->height)/2);
}
public function getNumberOfSides() file://辺の数を上書きしますmethod
{
return(3);
}
}
//具象クラス エンティティ class Rectangle
class Rectangle extends Polygon
{
public $ width;
public $height;
public function getArea()
{
return($this->width * $this->height); >
public function getNumberOfSides()
{
return(4);
}
}
//具体的なクラス エンティティ クラス Circle
クラス Circle extends Shape
{
public $radius;
public function getArea()
{
return(pi() * $this->radius * $this->radius)
}
}
//具体的なルートクラスはカラークラスを定義します
class Color
{
public $name;
}
$myCollection = array(); file://図形のコレクションを作成し、配列に入れます
//四角形を作成します
$r = new Rectangle
$r->width = 5 ;
$r->height = 7;
$myCollection[] = $r;
//三角形を作成します= 新しい三角形;
$t->高さ = 5;
$t->unset($t); >
// 円を作成します
$c = 新しい円;
$myCollection[] = $c;
// 色を作成します
$c = 新しい色;
$c->name = "blue";
$myCollection[] = $c; $ c);
foreach($myCollection as $s)
{
if($s instanceof Shape) file://if $s が Shape クラスのインスタンス
{
print("エリア: " . $s->getArea() .
"
n")
}
if($s インスタンスオブポリゴン)
{
print("Sides: " .
$s->getNumberOfSides() .
"
n");
if($s instanceof Color)
{
print("Color: $s->name
n")
}
print("
n"); >}
?>

ホット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)

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています
