Menu
CoddyTech

Sintaks Dasar Pewarisan (:)

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

Inheritance memungkinkan sebuah class memperoleh property dan method dari class lain. Daripada menulis ulang kode yang sama, kamu membuat base class (induk) dengan fungsionalitas bersama, lalu membuat derived classes (anak) yang mewarisinya.

Di C#, kamu menggunakan simbol titik dua : untuk menunjukkan pewarisan:

public class Animal
{
    public string Name { get; set; }
    
    public void Eat()
    {
        Console.WriteLine($"{Name} is eating.");
    }
}

public class Dog : Animal
{
    public void Bark()
    {
        Console.WriteLine($"{Name} says Woof!");
    }
}

class Dog mewarisi semua hal dari Animal. class ini dapat mengakses property Name dan method Eat() tanpa mendeklarasikannya lagi, serta menambahkan method Bark() sendiri:

Dog myDog = new Dog();
myDog.Name = "Buddy";
myDog.Eat();   // output: Buddy is eating.
myDog.Bark();  // output: Buddy says Woof!

C# hanya mendukung pewarisan tunggal, artinya sebuah class hanya dapat mewarisi satu class dasar. Namun, kamu dapat membuat rantai pewarisan ketika sebuah class turunan menjadi dasar bagi class lain. Hal ini menciptakan hierarki yang memodelkan hubungan di dunia nyata sekaligus menjaga kodemu tetap teratur dan dapat digunakan kembali.

challenge icon

Tantangan

Mudah

Mari buat hierarki kendaraan yang menunjukkan cara pewarisan memungkinkan class turunan berbagi fungsionalitas dari class dasar sekaligus menambahkan perilaku uniknya sendiri.

Kamu akan membuat tiga file untuk mengatur kodemu:

  • Vehicle.cs: Definisikan class Vehicle dalam namespace Transport. Ini akan menjadi class dasar yang digunakan bersama oleh semua kendaraan. Class ini harus memiliki property Brand (string) dan property Year (int), serta method StartEngine() yang mencetak "{Brand} engine started."
  • Car.cs: Definisikan class Car dalam namespace Transport yang mewarisi Vehicle. Mobil ini menambahkan property NumberOfDoors (int) dan method Honk() yang mencetak "{Brand} goes Beep Beep!"
  • Program.cs: Di file utama, buat instance Car menggunakan nilai input. Atur property-nya, termasuk property yang diwarisi, lalu tunjukkan bahwa mobil dapat menggunakan method miliknya sendiri dan method yang diwarisi dari Vehicle.

Kamu akan menerima tiga input:

  • Nama merek
  • Tahun
  • Jumlah pintu

Cetak informasi mobil dan tunjukkan kemampuannya dalam format berikut:

Car: {Brand} ({Year})
Doors: {NumberOfDoors}
{StartEngine output}
{Honk output}

Misalnya, jika inputnya adalah Toyota, 2022, dan 4, outputnya seharusnya:

Car: Toyota (2022)
Doors: 4
Toyota engine started.
Toyota goes Beep Beep!

Perhatikan bahwa Car dapat mengakses property Brand dan method StartEngine() meskipun keduanya didefinisikan dalam Vehicle. Itulah kehebatan pewarisan, class turunan otomatis mendapatkan semua yang dimiliki class dasarnya!

Coba sendiri

using System;
using Transport;

class Program
{
    public static void Main(string[] args)
    {
        // Baca input
        string brand = Console.ReadLine();
        int year = Convert.ToInt32(Console.ReadLine());
        int doors = Convert.ToInt32(Console.ReadLine());
        
        // TODO: Buat instance Car
        
        // TODO: Atur property mobil (Brand, Year, NumberOfDoors)
        
        // TODO: Cetak informasi mobil dalam format yang diminta:
        // Car: {Brand} ({Year})
        // Doors: {NumberOfDoors}
        // Lalu panggil StartEngine() dan Honk()
    }
}
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