← Back to list

Php’de OOP 4

Object Oriented Programming

Uğur Kabak · 2020-10-08 13:59 · 0 claps · 2.4 min read
#php #development #developer #class #programming
Open on Medium ↗
Wiki topics: 💻 · Programming

Php’de OOP 4

Object Oriented Programming

Merhaba, bu yazmızda Php’de OOP(Object Oriented Programming) yani Nesne Yönelimli Programlama bölümünde 4.yazımızı paylaşacağız. Bu yazıda abstraction (soyutlama) ve interface (arayüz) işlemlerini göreceksiniz.

Tanımlar :

abstract : Belirtilecek olan herhangi bir sınıfı, soyut sınıf haline dönüştürmek için kullanılır.

interface : Belirtilecek olan herhangi bir sınıfı, soyut arayüz sınıfı haline dönüştürmek için kullanılır.

implements : Daha önceden oluşturulmuş olan herhangi bir arayüz sınıfını, ilgili sınıfa tanımlamak / uygulamak için kullanılır.

Tanımlama kuralları :

abstract :

  • Soyut metodlar içerebilir.
  • Normal metodlar içerebilir.
  • Özellikler içerebilir.
  • Sabitler içerebilir.
  • Public, private veya protected tanımlaması yapılabilir.
  • Herhangi bir sınıf sadece tek bir abstract’dan türeyebilir.

interface :

  • Soyut metodlar içerebilir.
  • Sadece public görünürlüğüne sahip olmak kaydıyla normal metodlar içerebilir.
  • Sabitler içerebilir.
  • Herhangi bir sınıfta birden fazla interface (arayüz) kullanılabilir.

Örnekler :

Örnek 1 :

<?php
abstract class Deneme{
      abstract function tanim($parametreicerigi);
    }
    class Test extends Deneme{
    }
?>

Yukarıdaki örnekte hata döndürür, çünkü soyut sınıf içerisinde bulunan metodlar mutlaka soyut sınıftan türeyen alt sınıflarda bulunmalıdır.

Örnek 2 : Örnek 1’in doğru hali

<?php
  abstract class Deneme{
    abstract public function tanim($parametreicerigi);
  }
  class Test extends Deneme{
    public function tanim($parametreicerigi){
    }
  }
?>

Örnek 3 :

<?php
    abstract class Tema{
          abstract public function HeaderAlani($arkaplanrengi, $headerlogosu, $headerbanneri);
          abstract public function BodyAlani($icerik);
          abstract public function FooterAlani($copymetni);
      }
      class UstAlan extends Tema{
          public function HeaderAlani(){
          }
          public function BodyAlani(){
          }
          public function FooterAlani(){
          }
      }
?>

Yukarıdaki örnekte hata döndürür, çünkü eğer abstract sınıf tanımlanıyorsa içerisindeki metodlara türeyen sınıfta mutlaka kullanılmalı ama bu örnekte kullanılmadı.

Örnek 4 : Örnek 3’ün hatasız hali

<?php
  abstract class Tema{
        abstract public function HeaderAlani($arkaplanrengi, $headerlogosu, $headerbanneri);
        abstract public function BodyAlani($icerik);
        abstract public function FooterAlani($copymetni);
    }
    class UstAlan extends Tema{
        public function HeaderAlani($arkaplanrengi, $headerlogosu, $headerbanneri){
        }
        public function BodyAlani($icerik){
        }
        public function FooterAlani($copymetni){
        }
    }
?>

Örnek 5 : Özellik kullanılabilir

<?php
  abstract class Deneme{
        public $isim = "Uğur";
        public const soyisim = "Kabak";
      }
      class Test extends Deneme{
      }
?>

Örnek 6 : public, private veya protected kullanılabilir

<?php
abstract class Deneme{
        public $isimbir = "Uğur";
        public const soyisimbir = "Kabak";
        private $isimiki = "Uğur";
        private const soyisimiki = "Kabak";
        protected $isimuc = "Uğur";
        protected const soyisimuc = "Kabak";
      }
      class Test extends Deneme{
      }
?>

Örnek 7 : interface kullanımı

<?php
interface Deneme{
        public function tanim($parametreicerigi); 

    }
    class Test implements Deneme{
    }
?>

Yukarıdaki kod hata değeri döndürür, çünkü soyut arayüz sınıfı içerisinde bulunan metodlar mutlaka soyut arayüz tanımlanan sınıflarda da bulunmalıdır.

Örnek 8 : Örnek 7’nin doğru kullanım şekli

<?php
interface Deneme{
        public function tanim($parametreicerigi);
    }
    class Test implements Deneme{
       function tanim($parametreicerigi){
       }
    }
?>

Örnek 9 :

<?php
interface Crud{
        public function Olusturma($tablodegeri, $benzersizkimlik);
        private function Okuma($tablodegeri, $benzersizkimlik);
        protected function Duzenleme($tablodegeri, $benzersizkimlik);
        public function Silme($tablodegeri, $benzersizkimlik);
      }
      class Test implements Crud{
          public function Olusturma($tablodegeri, $benzersizkimlik){
          }
          public function Okuma($tablodegeri, $benzersizkimlik){
          }
          public function Duzenleme($tablodegeri, $benzersizkimlik){
          }
          public function Silme($tablodegeri, $benzersizkimlik){
          }
      }
?>

Yukarıdaki örnek hata döndürür, çünkü interface (arayüz)’de kullanılan özellikler mutlaka public olmalıdır. Private veya protected kullanılamaz.

Örnek 10 : Örnek 9’un doğru hali

<?php
  interface Crud{
        public function Olusturma($tablodegeri, $benzersizkimlik);
        public function Okuma($tablodegeri, $benzersizkimlik);
        public function Duzenleme($tablodegeri, $benzersizkimlik);
        public function Silme($tablodegeri, $benzersizkimlik);
      }
      class Test implements Crud{
          public function Olusturma($tablodegeri, $benzersizkimlik){
          }
          public function Okuma($tablodegeri, $benzersizkimlik){
          }
          public function Duzenleme($tablodegeri, $benzersizkimlik){
          }
          public function Silme($tablodegeri, $benzersizkimlik){
          }
      }
?>

메타데이터
post_id
7932ecdc2ff6
slug
phpde-oop-4-7932ecdc2ff6
url
https://medium.com/@uurkabak/phpde-oop-4-7932ecdc2ff6
canonical_url
https://medium.com/@uurkabak/phpde-oop-4-7932ecdc2ff6
author_url
https://medium.com/@uurkabak
status
ok
fetched_at
2026-07-28 19:00:09