Dersler

Giriş Yap Kayıt Ol
Tüm Derslere Dön
Dersler Nesne Tabanlı Programlama Hafta 3: Kalıtım ve Polimorfizm
3
Hafta

Kalıtım ve Polimorfizm

Bu haftada kalıtım ve polimorfizm kavramlarını ve uygulamalarını öğreneceğiz.

Ders Notları

Polimorfizm ve Yeniden Yazma

Metodların yeniden yazılması ve polimorfik davranışlar

Polimorfizm (Çok Biçimlilik)

Polimorfizm, bir metodun farklı bağlamlarda farklı davranışlar sergilemesidir. Method overriding (metod yeniden yazma) ve method overloading (metod aşırı yükleme) ile gerçekleştirilir.

Method Overriding Örneği

// Üst sınıf\npublic class Sekil {\n    public double alanHesapla() {\n        return 0;\n    }\n}\n\n// Alt sınıf 1\npublic class Dikdortgen extends Sekil {\n    private double genislik;\n    private double yukseklik;\n    \n    public Dikdortgen(double genislik, double yukseklik) {\n        this.genislik = genislik;\n        this.yukseklik = yukseklik;\n    }\n    \n    @Override\n    public double alanHesapla() {\n        return genislik * yukseklik;\n    }\n}\n\n// Alt sınıf 2\npublic class Daire extends Sekil {\n    private double yaricap;\n    \n    public Daire(double yaricap) {\n        this.yaricap = yaricap;\n    }\n    \n    @Override\n    public double alanHesapla() {\n        return Math.PI * yaricap * yaricap;\n    }\n}

Polimorfik Kullanım

Sekil sekil1 = new Dikdortgen(5, 10);\nSekil sekil2 = new Daire(7);\n\nSystem.out.println("Dikdörtgen Alanı: " + sekil1.alanHesapla());\nSystem.out.println("Daire Alanı: " + sekil2.alanHesapla());
02.10.2025

Kalıtım Kavramı ve Uygulamaları

Kalıtımın nasıl kullanılacağı ve neden önemli olduğu

Kalıtım (Inheritance)

Kalıtım, bir sınıfın başka bir sınıftan özelliklerini ve davranışlarını devralmasıdır. Bu sayede kod tekrarı azalır ve hiyerarşik bir yapı oluşturulur.

Kalıtım Örneği

// Üst sınıf (parent class, super class)\npublic class Canli {\n    protected String tur;\n    protected int yas;\n    \n    public void nefesAl() {\n        System.out.println("Nefes alıyor...");\n    }\n}\n\n// Alt sınıf (child class, sub class)\npublic class Insan extends Canli {\n    private String ad;\n    private String soyad;\n    \n    public Insan(String ad, String soyad, int yas) {\n        this.ad = ad;\n        this.soyad = soyad;\n        this.yas = yas;\n        this.tur = "İnsan";\n    }\n    \n    public void konus() {\n        System.out.println(ad + " konuşuyor...");\n    }\n}

Alt Sınıf Kullanımı

Insan insan1 = new Insan("Ayşe", "Kaya", 30);\ninsan1.nefesAl(); // Üst sınıftan gelen metod\ninsan1.konus(); // Alt sınıfa özgü metod
01.10.2025