PHP
<?php
abstract class AbstrClass{
abstract protected function getValue();
public function output(){
print $this -> getValue();
}
}
class ConcreteClassOne extends AbstrClass{
public $var1 = "value1";
public $var2 = "value2";
public $var3 = "value3";
protected $var4 = "value4";
private $var5 = "value5";
public $testVar = "Misaki";
function getTestVar(){
return $this -> testVar;
}
function setTestVar($testVar){
$this -> testVar = $testVar;
}
protected function getValue(){
return "ConcreteClassOne\n";
}
function getObj(ConcreteClassOne $obj){
return $obj;
}
function myEcho(ConcreteClassOne $obj){
var_dump($obj);
}
}
class ConcreteClassTwo extends AbstrClass{
protected function getValue(){
return "ConcreteClassTwo\n";
}
}
$objOne = new ConcreteClassOne;
$objOne -> output();
$objTwo = new ConcreteClassTwo;
$objTwo -> output();
//print ($objOne -> myEcho($objTwo));
//$objOne -> getObj($objOne) -> myEcho($objOne);
foreach ($objOne as $key => $value){
echo "$key = $value \n";
}
$objOne -> setTestVar("Anna");
print ($objOne -> getTestVar());