abstract class ApplicationInfo {
protected $name_;
protected $address_;
}
class FranchiseeApplicationInfo extends ApplicationInfo {
public function getName() {
return $name_;
}
public function setName($name) {
$name_ = $name;
}
public function getAddress() {
return $address_;
}
public function setAddress($address) {
$address_ = $address;
}
}
interface IEnquiryManagement {
public function accept(ApplicationInfo $appln);
}
class FranchiseeEnquiryManager implements IEnquiryManagement {
public function accept(ApplicationInfo $appln) {
return $appln->getName();
}
}
$appln = new FranchiseeApplicationInfo();
$appln->setAddress('this is a sample address');
$appln->setName('venky');
try {
$s = new FranchiseeEnquiryManager();
print $s->accept($appln);
} catch (Exception $e){
print $e->getMessage();
}