Php-mysql Course

The abstract classes and methods are used to create a model of minimum required methods which must be defined in normal sub-classes derived from an abstract class (with extends).
An abstract class is created with the abstract keyword.
An abstract class cannot be instantiated, can only be inherited by other sub-classes extended from it.


The abstract methods are declared with the abstract keyword, and cannot have an implementation, they simply declare the method's signature.
abstract public function methodName($arguments);
Abstract methods are only created in an abstract class.

  - Example:
In this example is created an abstract class with a property ($name), an abstract method ( greetName() ) and a normal method ( setName() ).
<?php
// AbstractClass class
abstract class AbstractClass {
  protected $name;

  // declare an abstract method
  abstract public function greetName($greet);

  // define a normal method
  public function setName($name) {
    $this->name = $name;        // sets the value of $name property
  }
}
?>
Any attempt to create an object instance of the AbstractClass will cause an error like this:
Fatal error: Cannot instantiate abstract class AbstractClass in ...
As you can see in the example above, the abstract method, greetName() does not have an implementation code, but, by declarating this method abstract, you ensure that it must be defined by all child class derived from AbstractClass.
The abstract methods declared in the parent class must be defined in the child classes with the same (or a less restricted) attribute of access, and the same number of arguments.

In the next example we create a child class derived from AbstractClass. This subclass must contain the greetName() method becouse it is marked abstract in the parent class.
<?php
// ... include AbstractClass code

// a child class derived from AbstractClass
class ChildClas extends AbstractClass {
  // the required method
  public function greetName($greet) {
    return $greet. ' '. $this->name;
  }

  // another method, returns today's date
  public function todayDate() {
    return 'Today: '. date('l, j-n-Y');
  }
}
?>
If we were to create a child class derived from AbstractClass that does not implement the greetName() method, will generate an error like this:
Fatal error: Class ChildClas contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (AbstractClass::greetName) in ...

Child classes and their instances can uses the public and protected elements created in the abstract parent class.
For example:
<?php
// ... include ChildClas code

// object instance of ChildClas
$obj = new AbstractClass();

// calls setName(), defined in AbstractClass
$obj->setName('MarPlo');

// access the methods defined in ChildClas class
echo $obj->greetName('Welcome');
echo '<br />'. $obj->todayDate();
?>
Will display:
Welcome MarPlo
Today: Saturday, 2-4-2011

Daily Test with Code Example

HTML
CSS
JavaScript
PHP-MySQL
Which tag can be used to create input text field in web page?
<form> <input> <div>
<input type="text" name="a_name" value="val" />
Which CSS property displays the text in a small-caps font?
display font-variant font-style
h3 {
  font-variant: small-caps;
}
What instruction displays a notice box with a message inside it, in JavaScript?
for() Date() alert()
var msg = "Visit CoursesWeb.net";
alert(msg);
Indicate the PHP code used to get the users IP.
$_SERVER["HTTP_USER_AGENT"] $_SERVER["REMOTE_ADDR"] $_GET[]
$ip = $_SERVER["REMOTE_ADDR"];
echo $ip;
PHP OOP - Abstract classes

Last accessed pages

  1. Add Pause in JavaScript script (14836)
  2. CSS Course - Free lessons (21173)
  3. Creating Functions in ActionScript (1312)
  4. Objects in 3D Space (1843)
  5. Node.js Move and Copy file (26291)

Popular pages this month

  1. PHP Unzipper - Extract Zip, Rar Archives (804)
  2. Courses Web: PHP-MySQL JavaScript Node.js Ajax HTML CSS (565)
  3. SHA1 Encrypt data in JavaScript (430)
  4. Create simple Website with PHP (397)
  5. Read Excel file data in PHP - PhpExcelReader (389)