Tôi không hiểu hiện tượng sau đây, ai đó có thể giải thích cho tôi xin vui lòng những gì tôi đã sai?Thừa kế và tính chất tĩnh
public class BaseClass
{
public BaseClass()
{
BaseClass.Instance = this;
}
public static BaseClass Instance
{
get;
private set;
}
}
public class SubClassA : BaseClass
{
public SubClassA()
: base()
{ }
}
public class SubClassB : BaseClass
{
public SubClassB()
: base()
{ }
}
class Program
{
static void Main(string[] args)
{
SubClassA a = new SubClassA();
SubClassB b = new SubClassB();
Console.WriteLine(SubClassA.Instance.GetType());
Console.WriteLine(SubClassB.Instance.GetType());
Console.Read();
}
}
Như tôi đã hiểu, trình biên dịch sẽ tạo ra một kiểu thừa kế kiểu mới, SubClassA và SubClassB thực sự là kiểu riêng với các biến tĩnh riêng. Nhưng có vẻ như phần tĩnh của lớp không được kế thừa nhưng được tham chiếu - tôi làm gì sai?
Tôi không nhận được nó tại sao thừa kế chỉ hoạt động trên các trường hợp, nhưng tôi phải chấp nhận nó. Cảm ơn bạn đã thông tin đó. –
Hành vi tương tự được thực hiện trong PHP và Delphi –
@VladislavRastrusny: Tôi không biết nó như thế nào trong năm 2010. Nhưng bây giờ trong năm 2016, có 'self ::' và 'static ::' trong PHP. –