99. 构造函数是否能被重写
99.1 题目
构造函数是否能被重写?
99.2 答案
构造函数(Constructor)不能被继承,因此不能重写,但可以被重载。
解释与示例
不能重写:构造函数是一个类的特殊方法,用于在创建对象时初始化对象。由于构造函数不能被继承,所以不能使用
override
关键字来重写父类的构造函数。可以重载:构造函数可以在同一个类中重载。重载是指在同一个类中可以有多个构造函数,这些构造函数具有相同的名称但参数列表不同。
示例代码
以下是构造函数重载的示例代码:
using System;
class MyClass
{
public int Value;
// 无参数的构造函数
public MyClass()
{
Value = 0;
Console.WriteLine("调用无参数的构造函数");
}
// 带一个参数的构造函数
public MyClass(int value)
{
Value = value;
Console.WriteLine("调用带一个参数的构造函数,参数值为: " + value);
}
}
class Program
{
static void Main()
{
// 调用无参数的构造函数
MyClass obj1 = new MyClass();
Console.WriteLine("obj1.Value: " + obj1.Value);
// 调用带一个参数的构造函数
MyClass obj2 = new MyClass(10);
Console.WriteLine("obj2.Value: " + obj2.Value);
}
}
输出结果:
调用无参数的构造函数
obj1.Value: 0
调用带一个参数的构造函数,参数值为: 10
obj2.Value: 10
在这个示例中,MyClass
类中有两个构造函数,一个是无参数的构造函数,另一个是带一个参数的构造函数。这两个构造函数通过不同的参数列表进行重载,因此在创建 MyClass
对象时,可以根据传递的参数选择合适的构造函数。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com