Actions
  Object Oriented Programming » History » Revision 3
      « Previous |
    Revision 3/21
      (diff)
      | Next »
    
    Amber Herold, 08/02/2011 12:24 PM 
    
    
Object Oriented Programming¶
Objects¶
- collection of attributes and behaviours
Polymorhism¶
PHP example¶
interface IAnimal {
    function getName();
    function talk();
}
abstract class AnimalBase implements IAnimal {
    protected $name;
    public function __construct($name) {
        $this->name = $name;
    }
    public function getName() {
        return $this->name;
    }
}
class Cat extends AnimalBase {
    public function talk() {
        return 'Meowww!';
    }
}
class Dog extends AnimalBase {
    public function talk() {
        return 'Woof! Woof!';
    }
}
$animals = array(
    new Cat('Missy'),
    new Cat('Mr. Mistoffelees'),
    new Dog('Lassie')
);
foreach ($animals as $animal) {
    echo $animal->getName() . ': ' . $animal->talk();
}
	
Python Example¶
class Animal:
    def __init__(self, name):    # Constructor of the class
        self.name = name
    def talk(self):              # Abstract method, defined by convention only
        raise NotImplementedError("Subclass must implement abstract method")
class Cat(Animal):
    def talk(self):
        return 'Meow!'
class Dog(Animal):
    def talk(self):
        return 'Woof! Woof!'
animals = [Cat('Missy'),
           Cat('Mr. Mistoffelees'),
           Dog('Lassie')]
for animal in animals:
    print animal.name + ': ' + animal.talk()
# prints the following:
#
# Missy: Meow!
# Mr. Mistoffelees: Meow!
# Lassie: Woof! Woof!
Updated by Amber Herold about 14 years ago · 21 revisions