BAZA WIEDZY
KURSY
Bazy danych w PHP
Kurs AdvancedAJAX
Kurs ASP
Kurs ASP.NET
Kurs C++
Kurs CSS
Kurs HTML
Kurs HTML drugi
Kurs JavaScript
Kurs MySQL
Kurs PHP
Kurs RSS
Kurs XHTML
Obiekty DOM
MANUALE
CSS1 - W3C
DOM - w budowie
PHP 2005
PHP 2006
Wyrażenia regularne
SHOUTBOX
STAT
Online: 9 | UU: 327
Wyszukaj funkcję PHP:  

Class Abstraction

PHP 5 introduces abstract classes and methods. It is not allowed to create an instance of a class that has been defined as abstract. Any class that contains at least one abstract method must also be abstract. Methods defined as abstract simply declare the method's signature they cannot define the implementation.

When inheriting from an abstract class, all methods marked abstract in the parent's class declaration must be defined by the child; additionally, these methods must be defined with the same (or weaker) visibillity. For example, if the abstract method is defined as protected, the function implementation must be defined as either protected or public.

Przykład 19-17. Abstract class example

<?php
abstract
class AbstractClass
{
    
// Force Extending class to define this method
    
abstract protected function getValue();
    
abstract protected function prefixValue($prefix);

    
// Common method
    
public function printOut() {
        print
$this->getValue() . "\n";
    }
}

class
ConcreteClass1 extends AbstractClass
{
    
protected function getValue() {
        return
"ConcreteClass1";
    }

    
public function prefixValue($prefix) {
        return
"{$prefix}ConcreteClass1";
    }
}

class
ConcreteClass2 extends AbstractClass
{
    
public function getValue() {
        return
"ConcreteClass2";
    }

    
public function prefixValue($prefix) {
        return
"{$prefix}ConcreteClass2";
    }
}

$class1 = new ConcreteClass1;
$class1->printOut();
echo
$class1->prefixValue('FOO_') ."\n";

$class2 = new ConcreteClass2;
$class2->printOut();
echo
$class2->prefixValue('FOO_') ."\n";
?>

Powyższy przykład wyświetli:

ConcreteClass1
FOO_ConcreteClass1
ConcreteClass2
FOO_ConcreteClass2

Old code that has no user-defined classes or functions named 'abstract' should run without modifications.

| | | |
Copyright © 2006-2013 egrafik.pl | Kontakt | Reklama | Projekty domów
jocker