একই ক্লাসে একাধিক কনস্ট্রাক্টর থাকলে যেগুলোর প্যারামিটার আলাদা, সেটাকে কনস্ট্রাক্টর ওভারলোডিং বলে। এটি অবজেক্ট তৈরির ফ্লেক্সিবিলিটি দেয়।
উদাহরণ
using System;
namespace Program
{
class Student
{
private double subjectOne;
private double subjectTwo;
string studentName;
public Student() { this.subjectOne = 80; }
public Student(double subjectOne) { this.subjectOne = subjectOne; }
public Student(string studentName, double subjectOne, double subjectTwo)
{
this.studentName = studentName;
this.subjectOne = subjectOne;
this.subjectTwo = subjectTwo;
}
public double GetSubjectOneMarks() => this.subjectOne;
public double GetSubjectTwoMarks() => this.subjectTwo;
public string GetStudentName() => this.studentName;
}
class Program
{
static void Main(string[] args)
{
Student s1 = new Student();
Student s2 = new Student(90);
Student s3 = new Student("Amit", 88, 60);
Console.WriteLine("First: Subject One Marks: {0}", s1.GetSubjectOneMarks());
Console.WriteLine("Second: Subject One Marks: {0}", s2.GetSubjectOneMarks());
Console.WriteLine("Third: Student name: {0}, Subject One: {1}, Subject Two: {2}",
s3.GetStudentName(), s3.GetSubjectOneMarks(), s3.GetSubjectTwoMarks());
Console.ReadKey();
}
}
}
আউটপুট
First: Subject One Marks: 80 Second: Subject One Marks: 90 Third: Student name: Amit, Subject One: 88, Subject Two: 60
this() ব্যবহার করে এক কনস্ট্রাক্টর অন্যটি কল করতে পারে।