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);
		}
	}
}
Lâm Phúc Tài viết 21:20 ngày 30/09/2018

Ai giúp với
Somebody help

... viết 21:27 ngày 30/09/2018

Mình chưa học C# nhưng tìm thấy cái này:

stackoverflow.com
lomaxx

Calling the base constructor in C#

c#, constructor
asked by lomaxx on 07:39AM - 15 Aug 08
viết 21:16 ngày 30/09/2018

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().

Lâm Phúc Tài viết 21:27 ngày 30/09/2018

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

viết 21:19 ngày 30/09/2018

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.

Bài liên quan
0