Java
Özet - Miras
super ve override'ı birleştirerek bir şekil hiyerarşisi yazarsın.
Özet - Miras
Bu grupta extends ile mirası, super ile üst sınıf yapıcı çağrısını, @Override ile metot geçersiz kılmayı, Object sınıfını ve final anahtar kelimesini öğrendin. Miras, sınıflar arasında kod paylaşımı sağlar.
Şimdi tüm bunları bir araya getireceksin: bir üst sınıf tanımla, alt sınıf extends ile miras alsın, super ile yapıcıyı çağır, @Override ile metot geçersiz kıl. Bu, nesne yönelimli tasarımın temelidir.
Uygulama Bird sınıfını Animal'dan miras al
Animal adında bir sınıf tanımla; String name alanı ve Animal(String n) yapıcısı olsun, name = n; atansın. Bird extends Animal tanımla; Bird(String n) yapıcısı super(n) ile başlasın. @Override ile void sound() metodunu ekle, gövdede System.out.println(name + " ötüyor"); yaz. Bird içine main koy; bir Bird örneği oluştur ve sound metodunu çağır.
Örnek çözümü göster
class Animal {
String name;
Animal(String n) {
name = n;
}
void sound() {
}
}
class Bird extends Animal {
Bird(String n) {
super(n);
}
@Override
void sound() {
System.out.println(name + " ötüyor");
}
public static void main(String[] args) {
Bird b = new Bird("Serçe");
b.sound();
}
}
Sırada ne var?
Mirası öğrendin. Sonraki gruplarda encapsulation ile alanları korumayı, static üyelerle sınıf düzeyinde veriyi ve interface ile sözleşme tanımlamayı göreceksin. Bunlar, sınıf tasarımının bir sonraki katmanıdır.
Bu grup; extends, super, @Override, Object ve final kavramlarını birleştirdi. Bunlar sınıf hiyerarşisinin temelidir. Bir sonraki adımda encapsulation ile alan erişimini denetim altına alacaksın; private alanlar ve getter/setter ile veriyi koruyacaksın.
Uygulama Vehicle sınıfını miras ile tanımla
Vehicle adında bir sınıf tanımla; String brand alanı ve Vehicle(String b) yapıcısı olsun, brand = b; atansın. Car extends Vehicle tanımla; Car(String b) yapıcısı super(b) ile başlasın. public String toString() metodunu Car'a ekle; brand döndürsün. Car içine main koy; bir Car örneği oluştur ve println ile yazdır.
Örnek çözümü göster
class Vehicle {
String brand;
Vehicle(String b) {
brand = b;
}
}
class Car extends Vehicle {
Car(String b) {
super(b);
}
public String toString() {
return brand;
}
public static void main(String[] args) {
Car c = new Car("Toyota");
System.out.println(c);
}
}
Kendini test et
-
Alt sınıf yapıcısında super() nerede olmalıdır?
- Ortada
- İlk satırda
- Son satırda
- Sınıf dışında
Cevabı göster
İlk satırda — İlk satırda — super() ilk satırda olmalı.
-
Override annotation ekle
class Bird extends Animal {
____
void fly() {
System.out.println("Uçuyor");
}
}
Cevabı göster
class Bird extends Animal {
@Override
void fly() {
System.out.println("Uçuyor");
}
}
Sıradaki ders: Sınıf tasarımı