Cohorts
  • Discover
  • About Us
  • Blog
  • Patika.dev
  • Web3

Java 102

Erişim Belirleyiciler
Static Anahtar Sözcüğü
Static Kod Blokları
Final Anahtar Sözcüğü ve Sabit Tanımlama

Encapsulation (Sarmalama) İlkesi
Sınıflar Arası İlişkiler
Kalıtım (Inheritance) İlkesi
Method Overriding (Metod Ezme)
Polymorphism (Çok Biçimlilik) İlkesi
Abstraction (Soyutlama) İlkesi
Interface Kullanımı

Oyun Tanıtımı ve Sınıf Tasarımları
Karakter Sınıfları
Harita ve Bölge Tasarımları
Mağaza Eşya Sistemi
Tehlikeli Bölgeler ve Canavarlar
Savaş Algoritması
Son Bir Bakış
Ödev

Nested ve Inner Sınıflar
Wrapper Sınıflar
Autoboxing ve Unboxing
Generic Sınıflar
Generic Metotlar
Generic Interface
Generic Bounded Types
Ödev - Liste Sınıfı Yapmak

Exception Handling (Hata Yakalama)
Try-Catch-Finally Kullanımı
Throw Kullanımı
Özel Hata Ayıklama (Exception) Oluşturma

Collection Sınıfı Nedir?
Set Interface ve HashSet
LinkedHashSet
TreeSet
ArrayList
LinkedList Kullanımı ve ArrayList İle Arasındaki Farklar
Vector
Queue LinkedList
PriorityQueue
Map Interface ve HashMap
LinkedHashMap ve TreeMap
Ödev - Kitap Sıralayıcı
Ödev - Fikstür Oluşturucu

PatikaStore

Sigorta Yönetim Sistemi

I/O Veri Akışları
File Sınıfı
FileInputStream Sınıfı
FileOutputStream Sınıfı
ByteArrayInputStream ve ByteArrayOutputStream Sınıfları
Serialization ve ObjectStream Sınıfları
BufferedInputStream ve BufferedOutputStream Sınıfları
PrintStream Sınıfı
InputStreamReader Sınıfı
OutputStreamWriter Sınıfı
FileReader ve FileWriter Sınıfları
BufferedReader ve BufferedWriter Sınıfları
PrintWriter Sınıfı

JDBC Nedir ?
Veritabanı Bağlantısı
Veritabanı İşlemleri ve Statement Interface
Transaction Yöntemi

Thread’lerin Oluşturulması ve Kullanılması
Runnable Interface
Thread Durdurmak ve Bekletmek
Critical Sections ve Race Condition
Volatile Kullanımı
İş Parçacığı Havuzları (ThreadPooling)
Ödev - Threadlerin Yarışı

Tip Dönüşümleri
Lambda Expressions
Stream API
Enum Sınıfı
Ödev - Kitap Listesi

Java Swing GUI Kullanımı
Proje Dosyaları ve Kullanıcı Yönetimi
Veritabanı İşlemleri
Tablolarda Veri Arama
Patika Yönetimi
Dinamik Formlar ve Ders Yönetimi
Giriş Ekranı ve Diğer Gereksinimler
Ödev - Projenin Tamamlanması

Ödev - Turizm Acente Sistemi

Coderbyte Challenge

Kalıtım (Inheritance)

Kalıtım, programlama ortamında da gerçek hayattaki tanımına benzer bir işi gerçekleştirir. Bir sınıfın başka bir sınıftan kalıtım yapması demek, kalıtımı yapan sınıfın diğer sınıftaki nitelik ve davranışlarını kendisine alması demektir. Kalıtımı yapan sınıfa alt sınıf, kendisinden kalıtım yapılan sınıfa ata sınıf dersek, ata sınıfta tanımlı olan herşeyin alt sınıf için de tanımlı olduğunu söyleyebiliriz.

Eğer bir A sınıfın B sınıfından kalıtım yapması isteniyorsa, aşağıda ki şekilde tanımlanır.


public class A extends B {
     // 
}

Kalıtım Türleri

Tek Yönlü Kalıtım (Single Inheritance)

Bir sınıfın başka bir sınıfı genişlettiği alt ve ata sınıf ilişkisini ifade eder.

Bu örnekte B sınıfı A sınıfını miras alır.

Çoklu Kalıtım (Multiple Inheritance)

Bir sınıfın birden fazla sınıfı miras almasını ifade eder; bu, bir alt sınıfın iki ata sınıfa sahip olduğu anlamına gelir.

Not : Java çoklu kalıtımı desteklemez. (Interface kullanılır)

Çok Seviyeli Kalıtım (Multilevel Inheritance)

Bir sınıfa ait alt sınıfın başka sınıfları genişletmesine denir.

Bu örnekte , C sınıfı B sınıfını miras alır, B sınıfı ise A sınıfını miras alır. C sınıfı dolaylı yoldan A sınıfınıda miras almış olur.

Hiyerarşik Kalıtım (Hierarchical Inheritance)

Birden fazla sınıfın aynı sınıfı genişlettiği bir alt ve üst sınıf ilişkisini ifade eder.

Bu örnekte : B, C ve D sınıfları aynı A sınıfını genişletir.

Hibrit Kalıtım (Hybrid Inheritance)

Programda birden fazla kalıtım türünün kombinasyonuna denir. Örneğin, A ve B sınıfı, C sınıfını genişletir ve başka bir D sınıfı, A sınıfını genişletir, bu bir hibrit kalıtım örneğidir, çünkü bu, tek yönlü ve hiyerarşik kalıtımın bir birleşimidir.

Kalıtım'da Constructor Zinciri ve Super Anahtar Sözcüğü

Bir sınıfa ait nesne oluşturulurken, o sınıfın bir kurucusunun işletildiğini, kurucunun çalışması tamamlandıktan sonra bellekte artık bir nesnenin oluştuğunu biliyoruz. Kurucuları da nesneleri ilk oluşturuldukları anda anlamlı durumlara taşıyabilmek için kullanıyoruz. Bu durumda, eğer nesnesi oluşturulacak sınıf başka bir sınıfın alt sınıfıysa, önce ataya ait içnesnesinin oluşturulması ve bu nesnenin niteliklerinin ilk değerlerinin verilmesi gerektiğini söyleyebiliriz.

İçiçe nesnelerin oluşabilmesi için nesnelerin içten dışa doğru oluşması gerekir. İç-nesnenin oluşabilmesi için, nesnesi oluşturulacak sınıfa ait kurucu işletilmeye başladığı zaman ilk iş olarak ata sınıfa ait kurucu çağrılır. Eğer ata sınıf da başka bir sınıfın alt sınıfıysa, bu kez o sınıfın kurucusu çağrılır. Kurucu zinciri alt sınıftan ata sınıfa doğru bu şekilde ilerler. En üstte, kalıtım ağacının tepesindeki sınıfın kurucusunun çalışması sonlandıktan sonra sırası ile alt sınıfların kurucularının çalışması sonlanacaktır. Böylece içiçe nesneler sıra ile oluşturularak en son en dıştaki nesne oluşturulmuş olur ve kurucu zinciri tamamlanır.

Super Kullanımı

Eğer ata sınıfta varsayılan kurucu yoksa ve programcı alt sınıftaki kurucunun içinde ata sınıfın hangi kurucusunun çağrılacağını belirtmezse derleme hatası alınacaktır. Çünkü derleyici aksi belirtilmedikçe ata sınıfın varsayılan kurucusunu çağıran super() kodunu üretecektir. Ata sınıfın hangi kurucusunun çağrılacağı, super anahtar sözcüğü ile birlikte verilen parametrelere göre belirlenir. Nasıl ki new işleci ile birlikte kullandığımız parametreler hangi kurucunun çağrılacağını belirliyorsa, super anahtar sözcüğü ile birlikte kullanılan parametreler de aynı şekilde ata sınıfın hangi kurucusunun işletileceğini belirler.

HackerRank Challenge

Join the challenge to submit your solution.
Şimdi challenge zamanı! Hackerrank profili aç ve [şu challenge’ı](https://www.hackerrank.com/challenges/java-inheritance-2) yap: Challenge’ı yapıp Hackerrank profilinin linkini aşağıdaki kutucuğa yaz:
Previous
Next

Lesson discussion

Swap insights and ask questions about “Java 102”.

Enroll to participate
Start the course to unlock the discussion. Enrolling helps us keep conversations relevant to learners.
Cohorts
WebsiteDiscoverBlogPatika.devRise In
CoursesCircleRustSoliditySolanaWeb3 FundamentalsBlockchain Basics
CompanyAbout UsTerms of UsePrivacy PolicyGDPR NoticeCookies
Don't miss any update!

Disclaimer: The information, programs, and events provided on https://cohorts.patika.dev is strictly for upskilling and networking purposes related to the technical infrastructure of blockchain platforms. We do not provide financial or investment advice, nor do we make any representations regarding the value, profitability, or future price of any blockchain or cryptocurrency. Users are encouraged to conduct their own research and consult with licensed financial professionals before engaging in any investment activities. https://cohorts.patika.dev disclaims any responsibility for financial decisions made by users based on the information provided here.

© 2026 Cohorts, All rights reserved