inheritance   

adana çık aradan

  1. ing. miras
    (wondrous, 17.01.2005 14:17)
  2. bir class'ın diğer bir class üstüne eklenmesi durumu. ikinci class'ımız birinci class'dan aldığı variable'ları, function'ları daha bir çeşitlendirmek görevini alıyor.

    süper olay.


    php'den örneklendirelim hemen :

    bir okullu class'ı var diyelim. $okunan_okul değişkenini alıp $okul döndürüyor. (bir boka yaramıyor bu, evet)

    class okullu {

    var $okul;

    function hangi_okul ($okunan_okul){

    $this->okul=$okunan_okul;

    }

    }



    şimdi bize lise'lerle ilgili bir olay lazım okul işleriyle uğraşmadan extend ediyoruz eski class'ımızı :


    class liseli extends okullu {

    var $lise;

    function hangi_lise ($okunan_lise){

    $this->lise=$okunan_lise

    }

    }




    şimdi :

    $okul_ortamlari=new liseli;
    $okul_ortamlari->hangi_okul("robert kolej");
    $okul_ortamlari->hangi_lise("nişantaşı şehit bob marley anadolu meslek lisesi");

    echo $okul_ortamlari->okul; //"robert kolej" çıkaracaktır
    echo $okul_ortamlari->lise; //"nişantaşı şehit bob marley anadolu meslek lisesi" çıkaracaktır.

    bakın liseli class'ı normalde içermemesine rağmen "okul" class'ının method'larını her şeyini aldı sömürdü. bize de halay çekmek kaldı. tey tey tey...
    (wondrous, 17.01.2005 14:24 ~ 30.01.2005 08:39)
  3. http://www.bilisim-kulubu.com/...
    (bateristt, 12.10.2005 04:20)
  4. bir nesnenin başka bir nesnenin özel hali olması ve ondaki bütün özellikleri içerimesini sağlayan yapı. manager, örneğin, employee'nin özel bir halidir. çünkü her manager aynı zamanda bir employee'dir. sigorta işlemelri örneğin her ikisininde de olduğu için, manager için ayrı bir işlem yapmaya gerek yoktur.
    (karizmatik, 03.07.2006 18:04)
  5. geçen seneki ben'in inheritance olayını iyi anlatamadığını farkettim. genel olarak inheritance şöyledir:

    class lise1
    {

    function lise1() { return "matematik, fizik"; }

    }

    class lise2 extends lise1
    {

    function lise2() { return "edebi metinler, psikoloji"; }

    }

    $lise1egidengenc=new lise1;
    //ekrana "matematik, fizik" çıkacaktır.
    echo $lise1egidengenc->lise1();




    $lise2yegidengenc=new lise2;
    //ekrana "matematik, fizik, edebi metinler, psikoloji" çıkacaktır.
    echo $lise2yegidengenc->lise1();
    echo $lise2yegidengenc->lise2();

    anladık? anlamadıysak sözlükten böyle ilmi şeyler öğrenilmeyeceğini de akıllarda tutmak gerekir.
    (wondrous, 22.07.2006 03:29 ~ 03:32)
  6. new model army'nin thunder and consolation albümünden leziz bir şarkıdır aynı zamanda...

    mother, father, i'm doing ok
    on the other side of the country
    far away
    and though i know the things
    that you want to hear me say
    sometimes these things are hard

    mother, father, i am your son
    right down to the long thin pointed face
    and this muddled up and twisted tongue
    and now i find that i'm doing all those
    things you would have done
    sometimes these things are hard

    so do i thank you ?
    do i curse you ?
    these tracks stretch out before me
    the ones you left behind
    what i want and what i feel
    it's yours, yours, not mine

    mother, father, all those battles that have been
    and the long long silences that lay in between
    please don't try to tell me all those were in vain
    sometimes these things are hard
    we live up at the wedding
    in rows of deep set eyes
    in our finest formal dresses
    yes, and proper suits and ties
    like a family of munsters
    in a really bad disguise ...

    so do i thank you ? ...
    do i curse you ?
    (vikartindur, 22.07.2006 09:24)
  7. (bkz: by inheritance)
    (petrucciante, 22.07.2006 10:00)
  8. classlar arası "has a", "uses a" ilişkileri adt olarak kabul edilebilir. ancak nesne tabanlı mimaride, bu superclassından özellikleri devralan çocuk classlar "is a" ilişkisine sahiptir ve oldukça kullanışlıdır. hatta oop'un temelinde bulunur. maksat, ortak paranteze almak gibidir; aynı işi yapanları bir üst paydada toplayıp hepsine dağıtmak gibi. java'da ördek verelim;

    "public interface insan" tanımladık diyelim, bunun sonrasında
    "public abstract class birey implements insan" diyebiliriz. sonra da
    "public class yetiskin extends birey" ve "public class bebek extends birey" diyerek erişkin ile bebek tipinde insan tanımlamış oluyoruz. insan olmanın tüm özelliklerini taşıyan "birey" nesnesi, yetişkin ve bebek olmak üzere 2 tipte incelenebilir.

    classların içlerini incelemek gerekirse:
    insan: interface olarak tanımlandı, dişi ve erkek olabilir. konuş() ve kipirda() metodları void olarak tanımlanmıştır.
    birey: insan'ın altındaki bir class. isim, soyisim, cinsiyet değişkenleri var. kipirda() methodu da bulunmakta.
    yetiskin: birey'in alt türü. konuş() fonksiyonu burada daha spesifik olarak tanımlı ve "merhaba" diye çıktı verebiliyor. ayrıca yetişkin kişiye, hangi "iş"te çalıştığına dair bir sorgulama da yapılabilir. bebek çalışmazken, yetişkin bir birey için işe girme çıkma olayları söz konusudur.
    bebek: birey'in alt türü. konuş() methodu ise bebek üzerinde çalıştırıldığında "agu" diye bir çıktı vermekte. iş ile ilgili bir değişken, methodu bulunmamakta.

    lakin bebek olsun yetişkin olsun, iki sınıfa ait nesneler de isim, soyisim, icnsiyet gibi özelliklere sahiptir ve bu özelliklerini insan veya birey olmalarından almışlardır. yetişkin veya bebek için ayrı ayrı değişkenler tanımlamaktansa, bu hiyerarşide ortak özellikleri belirtmek kolaylık sağlar, kod yükünü azaltır. bir de bu classlar arası ilişki venn şeması ile veya booch method ile daha iyi açıklanabilirdi ama çizemiyorum burada, neyse.
    (azureel, 27.08.2007 15:11)