CodeBlanks Logo Icon CodeBlanks

abstract

abstract class ile soyut sınıf öğrenirsin.

abstract class

Bir abstract class (soyut sınıf), doğrudan örneği üretilmeyen sınıftır. Soyut metotlar yalnızca imza taşır; gövde alt sınıfta yazılır. abstract class anahtar kelimeleriyle bildirilir.

Örnek: abstract class Shape { double area(); }. Burada Shape'in örneği alınamaz: Shape() derleme hatası verir. area metodu gövdesiz bırakılmıştır; her alt sınıf kendi alan hesabını yazmak zorundadır. Soyut sınıflar, ortak bir sözleşme (contract) tanımlamak için kullanılır; alt sınıflar bu sözleşmeyi somutlaştırır.

Soyut metot ve alt sınıf

Soyut sınıftaki gövdesiz metotlar alt sınıfta @override ile yazılır. Alt sınıf gövde vermediği sürece kendisi de soyut olur; somut olması için tüm soyut metotları uygulaması gerekir.

Örnek: class Circle extends Shape { final double radius; Circle(this.radius); @override double area() => 3.14 * radius * radius; }. Burada Circle somut bir sınıftır çünkü area'ya gövde vermiştir. Shape soyut olduğu için Shape örneği alınamaz, ama Circle örneği alınabilir. Soyut sınıf, kalıtım için iskelet kurar.

Uygulama Circle sınıfını yaz

Var olan abstract class Shape { double area(); } tanımını koru. Circle adında, Shape'ten miras alan bir sınıf tanımla; final double radius alanını ve Circle(this.radius) yapıcısını ekle. @override double area() => 3.14 * radius * radius; metodunu yaz. main içinde var c = Circle(2); ile örnek oluştur ve print(c.area()) çağrısı yap.

Başlangıç kodu

main.dart
abstract class Shape {
  double area();
}

// Circle sınıfını Shape'ten miras alacak biçimde tanımla

void main() {
  // Circle(2) örneği oluştur ve c.area() yazdır
}

Örnek çözüm

main.dart
abstract class Shape {
  double area();
}

class Circle extends Shape {
  final double radius;
  Circle(this.radius);
  @override
  double area() => 3.14 * radius * radius;
}

void main() {
  var c = Circle(2);
  print(c.area());
}

Beklenen çıktı

12.56

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Hangisi doğrudur?

  • Soyut sınıf doğrudan örneklenemez
  • Soyut sınıf final alan içeremez Doğru cevap
  • Soyut sınıf yalnızca bir alt sınıfa sahip olabilir
  • Soyut sınıfın tüm metotları gövdeli olmalıdır

Açıklama: Soyut sınıflar final alanlar içerebilir; yalnızca örneği alınamaz.

2 Abstract parçalarını eşle

Kavram Anlamı
abstract class Sınıf ön eki
double area() Soyut metot imzası
Circle Somut alt sınıf

3 abstract anahtarını ekle

Soru
class Shape {
  double area();
}____
Cevap
class Shape {
  double area();
}abstract 

Açıklama: abstract ön eki sınıfın örneğinin alınamayacağını belirtir.

Orta seviye bölümündeki tüm dersler