⚔️აბსტრაქტული კლასი
<?php
abstract class Database
{
public $someProperty = 'someValue'; // შეგვიძლია ჩვეულებრივი თვისებები გვქონდეს
// abstract public $foo; // მაგრამა ბსტრაქტული თვისებეი არა, აბსტრაქცია მხოლოდ მეთოდებს ეხება
// მეთოდები რომელთა იმპლემენტაცია სავალადებულო იქნება მემკვიდრე კლასებში
abstract protected function store($data);
abstract protected function fetch();
// საერთო მეთოდი რომელის იმპლემენტაციაც ყოველი ობიექტისთვის ერთნაირია
public function printOut() {
print "Your Friendly Neighbourhood Database\n";
}
}
class MySQL extends Database
{
protected function store($data) {
// Storing Implementation Details go here
}
public function fetch() {
// Fetching Implementation Details go here
print "someDataFrom MySQL \n";
}
}
class SQLite extends Database
{
protected function store($data) {
// Storing Implementation Details go here
}
public function fetch() {
// Fetching Implementation Details go here
print "someDataFrom SQLite \n";
}
}
// [!] ეს კლასი ედიტორის დონეზეც კი ერორს აჩვენებს ვინაიდან
// [!] ის არ ახორციელებს store და fetch მეთოდების იმპლემენტაციას
class Foo extends Database
{
// [!] Error
public function someMethod($prefix) {
return "Imagination";
}
}
Last updated