30/09/2018, 19:12
Vấn đề về bộ khởi tạo không tham số khi có kế thừa
Mình tạo một đối tượng mới khi sử dụng hàm new
với bộ khởi dựng không tham số từ lớp dẫn xuất ( vs điều kiện lớp cha cũng có bộ khởi dựng không tham số. ) thì tự động nó gọi luôn cả bộ khởi dựng không tham số của lớp cha luôn mà không cần sử dụng :base()
.
Có cách nào khi mình khởi tạo không tham số lớp con mà nó không gọi bộ khởi tạo của lớp cha không ạ.
using System;
namespace Test
{
class A
{
public A()
{
Console.WriteLine("A");
}
}
class B : A
{
public B()
{
Console.WriteLine("B");
}
}
class Program
{
public static void Main()
{
B b = new B();
Console.ReadKey(true);
}
}
}
Bài liên quan
Ai giúp với
Somebody help
Mình chưa học C# nhưng tìm thấy cái này:
Calling the base constructor in C#
tại sao lớp con lại ko cần gọi ctor (bộ khởi tạo) của lớp cha? Nếu lớp cha ko khởi tạo thì lớp con cũng có khởi tạo được 100% đâu? Lớp con là lớp cha + thêm mấy bộ phận của lớp con, hay coi lớp cha là lầu 1, lớp con là lầu 2, nếu ko có lầu 1 thì làm gì ra căn nhà được @_@ Bởi vậy lớp con nó mới tự động gọi base().
không hẳn vậy bạn ơi, mình tạo là tạo đối tượng lớp con chứ đâu phải cha, giả sử như lớp cha là lớp trừu tượng thì nó đâu có thể hiện đâu mà có bộ khởi tạo
lớp cha là lớp trừu tượng thì làm gì có ctor mà lớp con gọi…
tạo 1 instance của lớp con là trước đó phải tạo instance của lớp cha rồi mới tới các phần khác của lớp con. Đằng nào cũng phải gọi 1 trong các ctor của lớp cha thôi.