Menu
CoddyTech

Kata Kunci 'base'

Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan C# di Coddy. Pelajaran 20 dari 70.

Saat derived class mewarisi base class, kamu sering perlu mengakses anggota parent secara langsung. Kata kunci base menyediakan hubungan ini, sehingga kamu dapat memanggil constructor base class atau mengakses method dan property-nya.

Penggunaan base yang paling umum adalah memanggil konstruktor induk. Saat membuat object turunan, kamu dapat meneruskan nilai ke class dasar:

public class Animal
{
    public string Name { get; set; }
    
    public Animal(string name)
    {
        Name = name;
    }
}

public class Dog : Animal
{
    public string Breed { get; set; }
    
    public Dog(string name, string breed) : base(name)
    {
        Breed = breed;
    }
}

Sintaks : base(name) memanggil konstruktor Animal sebelum badan konstruktor Dog dijalankan. Ini memastikan class dasar diinisialisasi dengan benar terlebih dahulu.

Kamu juga bisa menggunakan base untuk memanggil method induk dari dalam class turunan:

public class Animal
{
    public void Speak()
    {
        Console.WriteLine("Animal sound");
    }
}

public class Dog : Animal
{
    public void Speak()
    {
        base.Speak();  // Memanggil method Speak milik Animal
        Console.WriteLine("Woof!");
    }
}

Di sini, base.Speak() secara eksplisit memanggil versi method milik induknya. Ini berguna saat kamu ingin memperluas perilaku induknya, bukan menggantinya sepenuhnya.

challenge icon

Tantangan

Mudah

Mari buat sistem inventaris produk yang menunjukkan cara derived class menggunakan kata kunci base untuk menginisialisasi parent class dengan benar dan memperluas perilaku yang diwarisi.

Kamu akan membuat tiga file untuk mengatur kodemu:

  • Product.cs: Definisikan class Product di namespace Inventory. Base class ini mewakili produk apa pun dengan property Name (string) dan property Price (decimal). Sertakan constructor yang menerima kedua nilai tersebut dan method GetInfo() yang mengembalikan "{Name}: ${Price}".
  • ElectronicProduct.cs: Definisikan class ElectronicProduct di namespace Inventory yang mewarisi Product. Class ini menambahkan property WarrantyMonths (int). Constructor harus menerima nama, harga, dan jumlah bulan garansi. Gunakan base untuk meneruskan nama dan harga ke constructor parent. Buat method GetInfo() yang pertama-tama memanggil GetInfo() milik parent menggunakan base, lalu menambahkan " (Warranty: {WarrantyMonths} months)" untuk memperluas output.
  • Program.cs: Di file utama, buat ElectronicProduct menggunakan nilai input dan tampilkan informasi lengkapnya dengan memanggil GetInfo().

Kamu akan menerima tiga input:

  • Nama produk
  • Harga
  • Jumlah bulan garansi

Cetak hasil pemanggilan GetInfo() pada produk elektronikmu.

Contohnya, jika inputnya adalah Laptop, 999.99, dan 24, outputnya adalah:

Laptop: $999.99 (Warranty: 24 months)

Perhatikan cara derived class membangun berdasarkan output base class, alih-alih menduplikasi logikanya. Kata kunci base memungkinkan kamu menggunakan kembali dan memperluas perilaku parent dengan mudah!

Coba sendiri

using System;
using Inventory;

class Program
{
    public static void Main(string[] args)
    {
        // Baca input
        string name = Console.ReadLine();
        decimal price = Convert.ToDecimal(Console.ReadLine());
        int warrantyMonths = Convert.ToInt32(Console.ReadLine());

        // TODO: Buat ElectronicProduct dengan nilai input
        
        // TODO: Cetak hasil pemanggilan GetInfo() pada produk elektronikmu
        
    }
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Pemrograman Berorientasi Objek

Latihan sendiri: Compiler C# online