Como todos sabemos, la POO es una de las herramientas mas utilizadas en la programación, son contados los lenguajes de programación que no soportan la creación de clases y objetos, aunque eso no significa que no sean inútiles. Por ejemplo, el lenguaje de programación C (uno de mis favoritos, por cierto) es usado para todo lo que tenga que ver con software y de este se desprenden muchos lenguajes muy importantes como C++, que es importante porque con este fueron creados muchos softwares increíbles como Unity, el motor para la creación de videojuegos. De cualquier forma, la idea es que pongamos en practica las cosas que hemos visto en el curso como es el caso de la herencia.
La herencia
La herencia nos ayudo a escribir menor código, por lo cual hay que agradecérselo a los dioses del internet, ya que realmente al momento de crear objetos es mucho mas fácil declarar los atributos y no tenemos que escribir las mismas lineas por cada clase que usemos.
Quiero que veas el siguiente ejemplo, que aunque es largo, tiene comentarios para que le entiendas a todo:
<?php// First, we create the father classclassHuman{
// We declare the attributes we are going to useprivate $name;
private $lastName;
private $age;
private $gender;
/*
* In the next lines we can watch
* a distribution of 2 blocks of code
* where the first is the setter and the
* next is the getter. These are related
* to the attributes above
* */functionsetName($name){
$this -> name = $name;
}
functiongetName(){
return $this->name;
}
functionsetLastName($lastName){
$this->lastName = $lastName;
}
functiongetLastName(){
return $this->lastName;
}
functionsetAge($age){
$this->age = $age;
}
functiongetAge(){
return $this->age;
}
functionsetGender($gender){
$this->gender = $gender;
}
functiongetGender(){
return $this->gender;
}
// In this function we make use of// all the attributes initializedfunctiondescribeYourself(){
print"Hi, I am a ".$this->gender." my name is ".$this->name." ".$this->lastName." and I am ".$this->age." years old \n"; --Mo
}
}
// Here we have the two classes with the inheritance of the Human class// They are empty because all is in the father classclassManextendsHuman{
}
classWomanextendsHuman{
}
/*
* In the next lines we have the creation of the objects
* and the setting of all the attributes
* at last we have the declaration of the function
* where we use all the attributes
* */
$javier = new Man();
$javier -> setName("Javier");
$javier -> setLastName("Marin");
$javier -> setAge(20);
$javier -> setGender("man");
$javier -> describeYourself();
$ana = new Woman();
$ana -> setName("Ana");
$ana -> setLastName("Garcia");
$ana -> setAge(59);
$ana -> setGender("woman");
$ana->describeYourself();
?>
Puse los comentarios en ingles porque así se usa en la industria