10. ABSTRACT ve FINAL class ve methodlar
ฝัง
- เผยแพร่เมื่อ 3 มี.ค. 2022
- Bu videoda abstract/soyut, final classlar ve methodlara bakacağız.
Java’ya Giriş Referans Kitapçığı ► www.rmkod.com/java-referans-k...
Instagram ► / irmakozonay
Twitter ► / irmakozonay
Abstract classlar
Abstract classlar instantiate edilemez, yani abstract bir classın bir objesi oluşturulamaz.
Bazı classlar genelde polymorphismi kullanmak için yaratılır.
Örneğin bir programda Hayvan.java classı sadece Kedi.java, Kopek.java classlarının kendinden inherit etmesi için yaratılmış olabilir ve Hayvan classından bir obje oluşturmak anlamsızdır.
Bu tarz classlardan yeni bir obje yaratılmasını engellemek için bu classlar abstract olarak tanımlanabilir.
public abstract class Animal {
}
Animal animal = new Animal(); // HATA
Abstract methodlar
Methoda abstract kelimesini ekleyerek methodu gövdesiz şekilde tanımlayabiliriz.
Bu sayede alt sınıflar bu methodu kendileri implemente etmek zorunda kalır.
Örneğin Hayvan classında sesÇıkar() methodu kedi için farklı, köpek için farklı olarak implemente edilmelidir. Hayvan classında bu methodun implemente edilmiş olmasının bir anlamı yoktur.
public abstract class Animal {
public abstract void makeNoise();
}
public class Cat extends Animal{
@Override
public void makeNoise() {
System.out.println("Miyav!");
}
}
Final classlar
Bir classın extend edilmesini engellemek için class final kelimesi ile tanımlanabilir.
public final class SomeFinalClass {
}
public class SomeClass extends SomeFinalClass{ // HATA
}
Final methodlar
Final olarak tanımlanan methodlar extend edilen classlarda override edilemez.
public class SomeClass {
public final void log(
System.out.println("logging");
);
}
public class SomeOtherClass extends SomeClass{
@Override
public void log() { // HATA
}
}
Teşekkürler 💯
Bir sonraki videoda görüşmek üzere