Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Kata base
kunci digunakan untuk mengakses anggota kelas dasar dari dalam kelas turunan. Gunakan jika Anda ingin:
- Panggil metode pada kelas dasar yang dilampaui oleh metode lain.
- Tentukan konstruktor kelas dasar mana yang harus dipanggil saat membuat instans kelas turunan.
Akses kelas induk hanya diizinkan dalam konstruktor, metode instance, dan aksesor properti instance.
base
Menggunakan kata kunci dari dalam metode statis menghasilkan kesalahan.
Kelas dasar yang diakses adalah kelas dasar yang ditentukan dalam deklarasi kelas. Misalnya, jika Anda menentukan class ClassB : ClassA
, anggota ClassA diakses dari ClassB, terlepas dari kelas dasar ClassA.
Dalam contoh ini, kelas dasar dan kelas Person
Employee
turunan memiliki metode bernama GetInfo
. Dengan menggunakan base
kata kunci, dimungkinkan untuk memanggil GetInfo
metode kelas dasar dari dalam kelas turunan.
public class Person
{
protected string ssn = "444-55-6666";
protected string name = "John L. Malgraine";
public virtual void GetInfo()
{
Console.WriteLine($"Name: {name}");
Console.WriteLine($"SSN: {ssn}");
}
}
class Employee : Person
{
public readonly string id = "ABC567EFG";
public override void GetInfo()
{
// Calling the base class GetInfo method:
base.GetInfo();
Console.WriteLine($"Employee ID: {id}");
}
}
class TestClass
{
static void Main()
{
Employee E = new Employee();
E.GetInfo();
}
}
/*
Output
Name: John L. Malgraine
SSN: 444-55-6666
Employee ID: ABC567EFG
*/
Contoh ini menunjukkan cara menentukan konstruktor kelas dasar yang dipanggil saat membuat instans kelas turunan.
public class BaseClass
{
private int num;
public BaseClass() =>
Console.WriteLine("in BaseClass()");
public BaseClass(int i)
{
num = i;
Console.WriteLine("in BaseClass(int i)");
}
public int GetNum() => num;
}
public class DerivedClass : BaseClass
{
// This constructor will call BaseClass.BaseClass()
public DerivedClass() : base() { }
// This constructor will call BaseClass.BaseClass(int i)
public DerivedClass(int i) : base(i) { }
static void Main()
{
DerivedClass md = new DerivedClass();
DerivedClass md1 = new DerivedClass(1);
}
}
/*
Output:
in BaseClass()
in BaseClass(int i)
*/
Untuk contoh selengkapnya, lihat baru, virtual, dan ambil alih.
Spesifikasi bahasa C#
Untuk informasi selengkapnya, lihat Spesifikasi Bahasa C#. Spesifikasi bahasa adalah sumber definitif untuk sintaks dan penggunaan C#.