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.
Tantangan
MudahMari 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 classVehicledalam namespaceTransport. Ini akan menjadi class dasar yang digunakan bersama oleh semua kendaraan. Class ini harus memiliki propertyBrand(string) dan propertyYear(int), serta methodStartEngine()yang mencetak"{Brand} engine started."Car.cs: Definisikan classCardalam namespaceTransportyang mewarisiVehicle. Mobil ini menambahkan propertyNumberOfDoors(int) dan methodHonk()yang mencetak"{Brand} goes Beep Beep!"Program.cs: Di file utama, buat instanceCarmenggunakan nilai input. Atur property-nya, termasuk property yang diwarisi, lalu tunjukkan bahwa mobil dapat menggunakan method miliknya sendiri dan method yang diwarisi dariVehicle.
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()
}
}
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Pemrograman Berorientasi Objek
1Dasar-Dasar OOP
File EksternalNamespace & DirektifPengantar class & objectKata Kunci 'this'Method dan ParameterField vs PropertyKonstruktorInisialisasi objectRingkasan: Kalkulator Sederhana4Pewarisan
Sintaks Dasar Pewarisan (:)Kata Kunci 'base'Kata Kunci Virtual & OverrideClass SealedBase Class 'object'Rangkuman: Hierarki Karyawan7Fitur Lanjutan
Overloading OperatorIndexer (this[])Penimpaan ToString()Extension methodRingkasan: Custom list2Property & Anggota Statis
Property yang Diimplementasikan OtomatisProperty Hanya Baca dan Hanya TulisField dan method StatisClass StatisAnggota Berbentuk Ekspresi5Polimorfisme & Antarmuka
Polimorfisme saat kompilasi vs runtimeAntarmuka vs kelas abstrakBeberapa antarmukaAntarmuka eksplisitUpcasting & DowncastingRingkasan, Kalkulator Bentuk8Konsep OOP Lanjutan
Komposisi daripada PewarisanGenerics (class dan method)Delegate dan EventAtribut dan ReflectionIDisposable dan Pernyataan usingDasar-Dasar Dependency Injection11Pola Desain Bagian 2
Pola PerintahPola AdapterPola DecoratorPola Template MethodPola StatePola CompositeLatihan sendiri: Compiler C# online