hidensoft
Member
پولی مورفیسم واقعا سخته و پردازش هاي مخ آدم رو به بالاترين سطح مي رسونه (بهت حق مي دم)
ببينيد با دستور
چك مي كنيد كه آيا obj$ عضو يا همان كلاس Animal هست يا نه ؟
مي دونم كه متوجه نشدي .. خط به خط توضيح مي دم .. دقت كن .
كلاس Animal
كلاس cat فرزند Animal
كلاس dog فرزند Animal
تابع printTheRightSound (اعلام خروجي)
كد اصلي يا بدنه
برنامه از قسمت بدنه يا اصلي اجرا مي شه . اين دستور رو اجرا مي كنيم.
خط اول تابع printTheRightSound اجرا مي شه :
آيا obj$ فرزند يا خود كلاس Animal هست ؟ جواب : بله
خط بعد :
چون ما شي Cat رو ارجا داديم .. مي ره سراغ تابع MakeSound در كلاس Cat :
رشته miau در خروجي چاپ مي شه .
همين كار ها براي Dog هم انجام مي شه .. اميد وارم كه جوابتون رو گرفته باشيد.
ببينيد با دستور
PHP:
if ($obj instanceof Animal)
مي دونم كه متوجه نشدي .. خط به خط توضيح مي دم .. دقت كن .
كلاس Animal
PHP:
class Animal {
function makeSound()
{
print "Error: This method should be re-implemented in the children";
}
}
كلاس cat فرزند Animal
PHP:
class Cat extends Animal {
function makeSound()
{
print "miau";
}
}
كلاس dog فرزند Animal
PHP:
class Dog extends Animal {
function makeSound()
{
print "wuff";
}
}
تابع printTheRightSound (اعلام خروجي)
PHP:
function printTheRightSound($obj)
{
if ($obj instanceof Animal)
{
$obj->makeSound();
}
else
{
print "Error: Passed wrong kind of object";
}
print "\n";
}
كد اصلي يا بدنه
PHP:
printTheRightSound(new Cat());
printTheRightSound(new Dog());
برنامه از قسمت بدنه يا اصلي اجرا مي شه . اين دستور رو اجرا مي كنيم.
PHP:
printTheRightSound(new Cat());
PHP:
if ($obj instanceof Animal)
خط بعد :
PHP:
$obj->makeSound();
PHP:
class Cat extends Animal {
function makeSound()
{
print "miau";
}
}
همين كار ها براي Dog هم انجام مي شه .. اميد وارم كه جوابتون رو گرفته باشيد.