Heim Backend-Entwicklung PHP-Tutorial php 抽象类的简单应用_PHP

php 抽象类的简单应用_PHP

Jun 01, 2016 pm 12:14 PM
抽象类

All right, 父类postParent定义为抽象,规定子类必须重新实现 buildHTML()方法,这个方法并没有花括号,如果有不管有没有内容都会报错的。
现在越看越觉得这代码完全没必要用抽象类,用继承也都很鸡肋,好吧,也没啥好说的好像。。。。。
另外我把mysql 分开在外面了,所以调用方法很麻烦
1,先实例化 readArticle
2,mysql查询,参数来自 readArticle::getSQL();
3,返回mysql结果资源给 readArticle::fetchResult( $result );
4,readArticle::buildHTML(); 返回HTML
如果是列表循环输出的话,把 3 和 4 重复调用就可以了
复制代码 代码如下:
abstract class postParent
{
protected $querySQL;
public $fetchResult;
public $timeAgo; // eg : 2 days ago
abstract protected function buildHTML();
public function getSQL()
{
return $this->querySQL;
}
public function fetchResult( $result )
{
$this->fetchResult = mysql_fetch_assoc( $result );
}
public function error()
{}
}
class readArticle extends postParent
{
public function __construct( $id )
{
$this->querySQL =SELECT title, author, text, unixtime FROM post
WHERE id = $id ORDER BY unixtime DESC;
eof;
}
public function buildHTML()
{
return




class="post-title-a" > {$this->fetchResult['title']}





{$this->fetchResult['text']}


eof;
}
}
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hat Golang abstrakte Klassen? Hat Golang abstrakte Klassen? Jan 06, 2023 pm 07:04 PM

Golang hat keine abstrakten Klassen. Golang ist keine objektorientierte (OOP) Sprache. Es gibt keine Konzepte für Klassen, Vererbung und abstrakte Klassen. Es gibt jedoch Strukturen (Strukturen) und Schnittstellen (Schnittstellen), die indirekt durch die Kombination von implementiert werden können Struktur und Schnittstelle. Abstrakte Klassen in Objektsprachen.

Anwendung von Schnittstellen und abstrakten Klassen in Entwurfsmustern in Java Anwendung von Schnittstellen und abstrakten Klassen in Entwurfsmustern in Java May 01, 2024 pm 06:33 PM

Schnittstellen und abstrakte Klassen werden in Entwurfsmustern zur Entkopplung und Erweiterbarkeit verwendet. Schnittstellen definieren Methodensignaturen, abstrakte Klassen stellen eine teilweise Implementierung bereit und Unterklassen müssen nicht implementierte Methoden implementieren. Im Strategiemuster wird die Schnittstelle zum Definieren des Algorithmus verwendet, und die abstrakte Klasse oder konkrete Klasse stellt die Implementierung bereit, wodurch ein dynamischer Wechsel von Algorithmen ermöglicht wird. Im Beobachtermuster werden Schnittstellen zum Definieren des Beobachterverhaltens verwendet, und abstrakte oder konkrete Klassen werden zum Abonnieren und Veröffentlichen von Benachrichtigungen verwendet. Im Adaptermuster werden Schnittstellen verwendet, um vorhandene Klassen anzupassen, oder konkrete Klassen können kompatible Schnittstellen implementieren und so eine Interaktion mit Originalcode ermöglichen.

Innerklassenimplementierung von Schnittstellen und abstrakten Klassen in Java Innerklassenimplementierung von Schnittstellen und abstrakten Klassen in Java Apr 30, 2024 pm 02:03 PM

Java ermöglicht die Definition innerer Klassen innerhalb von Schnittstellen und abstrakten Klassen und bietet so Flexibilität für die Wiederverwendung und Modularisierung von Code. Innere Klassen in Schnittstellen können spezifische Funktionen implementieren, während innere Klassen in abstrakten Klassen allgemeine Funktionen definieren können und Unterklassen konkrete Implementierungen bereitstellen.

Eine ausführliche Diskussion der Ähnlichkeiten und Unterschiede zwischen Golang-Funktionsschnittstellen und abstrakten Klassen Eine ausführliche Diskussion der Ähnlichkeiten und Unterschiede zwischen Golang-Funktionsschnittstellen und abstrakten Klassen Apr 20, 2024 am 09:21 AM

Für die Wiederverwendbarkeit von Code werden sowohl funktionale Schnittstellen als auch abstrakte Klassen verwendet, sie werden jedoch auf unterschiedliche Weise implementiert: funktionale Schnittstellen durch Referenzfunktionen, abstrakte Klassen durch Vererbung. Funktionale Schnittstellen können nicht instanziiert werden, abstrakte Klassen jedoch schon. Funktionale Schnittstellen müssen alle deklarierten Methoden implementieren, während abstrakte Klassen nur einige Methoden implementieren können.

Java-Schnittstellen und abstrakte Klassen: Der Weg zum Programmierhimmel Java-Schnittstellen und abstrakte Klassen: Der Weg zum Programmierhimmel Mar 04, 2024 am 09:13 AM

Schnittstelle: Eine implementierte Vertragsschnittstelle definiert eine Reihe von Methodensignaturen in Java, stellt jedoch keine konkrete Implementierung bereit. Es fungiert als Vertrag, der Klassen, die die Schnittstelle implementieren, dazu zwingt, ihre angegebenen Methoden zu implementieren. Die Methoden in der Schnittstelle sind abstrakte Methoden und haben keinen Methodenkörper. Codebeispiel: publicinterfaceAnimal{voideat();voidsleep();} Abstrakte Klasse: Teilweise implementierter Entwurf Eine abstrakte Klasse ist eine übergeordnete Klasse, die eine teilweise Implementierung bereitstellt, die von ihren Unterklassen geerbt werden kann. Im Gegensatz zu Schnittstellen können abstrakte Klassen konkrete Implementierungen und abstrakte Methoden enthalten. Abstrakte Methoden werden mit dem Schlüsselwort abstract deklariert und müssen von Unterklassen überschrieben werden. Codebeispiel: publicabstractcla

Java-Schnittstellen und abstrakte Klassen: Offenlegung der inneren Verbindung zwischen ihnen Java-Schnittstellen und abstrakte Klassen: Offenlegung der inneren Verbindung zwischen ihnen Mar 04, 2024 am 09:34 AM

Interface Interface definiert abstrakte Methoden und Konstanten in Java. Die Methoden in der Schnittstelle sind nicht implementiert, sondern werden von der Klasse bereitgestellt, die die Schnittstelle implementiert. Die Schnittstelle definiert einen Vertrag, der erfordert, dass die Implementierungsklasse bestimmte Methodenimplementierungen bereitstellt. Deklarieren Sie die Schnittstelle: publicinterfaceExampleInterface{voiddoSomething();intgetSomething();} Abstrakte Klasse Eine abstrakte Klasse ist eine Klasse, die nicht instanziiert werden kann. Es enthält eine Mischung aus abstrakten und nicht-abstrakten Methoden. Ähnlich wie Schnittstellen werden abstrakte Methoden in abstrakten Klassen durch Unterklassen implementiert. Abstrakte Klassen können jedoch auch konkrete Methoden enthalten, die Standardimplementierungen bereitstellen. Deklarieren Sie die abstrakte Klasse: publicabstractcl

Was ist der Unterschied zwischen Schnittstellen und abstrakten Klassen in PHP? Was ist der Unterschied zwischen Schnittstellen und abstrakten Klassen in PHP? Jun 04, 2024 am 09:17 AM

Schnittstellen und abstrakte Klassen werden verwendet, um erweiterbaren PHP-Code zu erstellen, und es gibt den folgenden Hauptunterschied zwischen ihnen: Schnittstellen erzwingen durch Implementierung, während abstrakte Klassen durch Vererbung erzwungen werden. Schnittstellen können keine konkreten Methoden enthalten, abstrakte Klassen hingegen schon. Eine Klasse kann mehrere Schnittstellen implementieren, aber nur von einer abstrakten Klasse erben. Schnittstellen können nicht instanziiert werden, abstrakte Klassen jedoch schon.

Was ist der Unterschied zwischen abstrakten Klassen und Schnittstellen in PHP? Was ist der Unterschied zwischen abstrakten Klassen und Schnittstellen in PHP? Mar 10, 2021 pm 05:51 PM

Unterschiede: 1. Abstrakte Klassen können Attribute und gewöhnliche Methoden haben, Schnittstellen jedoch nicht. 2. Es dürfen keine abstrakten Methoden in abstrakten Klassen vorhanden sein. 3. Es gibt Unterschiede in der Syntax. Abstrakte Klassen Verwenden Sie das Schlüsselwort abstract, um eine Klasse zu deklarieren. Die Schnittstelle wird mit interface deklariert, kann jedoch nicht mit class 5 deklariert werden. Die abstrakte Methode einer abstrakten Klasse muss mit abstract deklariert werden. aber Schnittstellen sind nicht erforderlich. 6. Abstrakte Klassen und Schnittstellen implementieren detaillierte Methoden auf unterschiedliche Weise.

See all articles