> For the complete documentation index, see [llms.txt](https://docs.layraweb.com.tr/merhaba/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.layraweb.com.tr/merhaba/php-tarafi/konular/siniflar-ve-nesneler/miras-inheritance.md).

# Miras (Inheritance)

PHP'de miras, bir sınıfın başka bir sınıftan özelliklerini ve yöntemlerini alabilmesini sağlayan bir özelliktir. Miras, programlama dilinde nesne yönelimli programlama (OOP) prensiplerinden biridir ve sınıf hiyerarşileri oluşturulmasına olanak tanır.

Bir sınıfın başka bir sınıftan miras alabilmesi için `extends` anahtar kelimesi kullanılır. Aşağıda basit bir örnek verilmiştir:

```php
class Person {
   public $name;
   public $age;
   public function __construct($name, $age) {
      $this->name = $name;
      $this->age = $age;
   }
   public function introduce() {
      echo "My name is {$this->name} and I am {$this->age} years old.";
   }
}

class Student extends Person {
   public $studentID;
   public function __construct($name, $age, $studentID) {
      parent::__construct($name, $age);
      $this->studentID = $studentID;
   }
   public function studentInfo() {
      echo "My name is {$this->name}, I am {$this->age} years old, and my student ID is {$this->studentID}.";
   }
}

$student = new Student("John Doe", 20, "1234");
$student->introduce();
echo "<br>";
$student->studentInfo();
```

Bu örnekte, `Person` sınıfı tanımlanmış ve `Student` sınıfı, `Person` sınıfından miras almıştır. `Student` sınıfı, `name` ve `age` özelliklerine erişebilir ve `introduce()` yöntemini kullanabilir. `Student` sınıfı ayrıca kendine özgü bir `$studentID` özelliğine sahiptir ve `studentInfo()` yöntemiyle bu özelliği kullanır.

`parent::__construct()` ifadesi, `Student` sınıfının yapıcı yöntemiyle `Person` sınıfının yapıcı yöntemini çağırır ve `name` ve `age` özelliklerine erişimi sağlar.

Miras, kodun yeniden kullanılmasını ve sınıflar arasındaki ilişkilerin daha iyi anlaşılmasını sağlar. Ancak, kötü tasarlanmış sınıf hiyerarşileri, kodun okunmasını ve bakımını zorlaştırabilir.
