Как реализовать программно иерархию классов? Доброго времени суток!
Есть задача, которую надо выполнить:
Разработать и реализовать программно иерархию классов для работы со счетом вкладчика банка. Для этого следует выполнить следующие задачи:
1. Разработать и реализовать программно базовый класс Bill.
2. Разработать и реализовать программно базовый класс Depositor.
3. Разработать и реализовать программно производный класс BillDepositor.
4. В главной части программы продемонстрировать работу созданной иерархии классов.using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
class Bill {
string _ID;
double _Balance, Persent;
protected string ID {
get { return _ID; }
set { value = _ID; }
}
protected double Balance {
get { return _Balance; }
set { value = _Balance; }
}
public Bill(string ID, double Balance) {
this.ID = ID;
this.Balance = Balance;
Persent = 0.03;
}
public override string ToString() {
return "Bill number: " + ID + "Balance: " + Balance;
}
~Bill() { }
}
class Depositor {
string _FullName, _Passport;
protected string FullName {
get { return _FullName; }
set { value = _FullName; }
}
protected string Passport {
get { return _Passport; }
set { value = _Passport; }
}
public Depositor(string FullName, string Passport) {
this.FullName = FullName;
this.Passport = Passport;
}
public override string ToString() {
return "Full Name: " + FullName + "Passport seria/number: " + Passport;
}
~Depositor() { }
}
class BillDepositor : Depositor {
double _MaxBill;
string _Password;
protected double MaxBill {
get { return _MaxBill; }
set { value = _MaxBill; }
}
protected string Password {
get { return _Password; }
set { value = _Password; }
}
public BillDepositor(string Password, double MaxBille, string FullName, string Passport) : base(FullName, Passport) {
this.MaxBill = MaxBill;
this.Password = Password;
}
}
class Program {
static void Main() {
}
}
Как в C# можно сделать, что бы BillDepositor наследовался от Bill и Depositor.
Я пробывал:using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

class Bill {
string _ID;
double _Balance, Persent;

protected string ID {
get { return _ID; }
set { value = _ID; }
}

protected double Balance {
get { return _Balance; }
set { value = _Balance; }
}

public Bill(string ID, double Balance) {
this.ID = ID;
this.Balance = Balance;
Persent = 0.03;
}

public void DisplayBill() {
Console.Write("Account number: " + ID);
Console.Write("Total bill: " + Balance);
}

public override string ToString() {
return "Bill number: " + ID + "Balance: " + Balance;
}

~Bill() { }
}

class Depositor : Bill {
string _FullName, _Passport;

protected string FullName {
get { return _FullName; }
set { value = _FullName; }
}

protected string Passport {
get { return _Passport; }
set { value = _Passport; }
}

public Depositor(string FullName, string Passport, string ID, double Balance) : base(ID, Balance) {
this.FullName = FullName;
this.Passport = Passport;
}

public override string ToString() {
return "Full Name: " + FullName + "Passport seria/number: " + Passport;
}

~Depositor() { }
}

class BillDepositor : Depositor {
double _MaxBill;
string _Password;

protected double MaxBill {
get { return _MaxBill; }
set { value = _MaxBill; }
}

protected string Password {
get { return _Password; }
set { value = _Password; }
}

public BillDepositor(double MaxBill, string Password, string FullName, string Passport, string ID, double Balance)
: base(string FullName, string Passport, string ID, double Balance) {
this.MaxBill = MaxBill;
this.Password = Password;
}
}

class Program {
static void Main() {

}
}
Но, выходит ошибка "does not contain a constructor that takes 8 arguments"

21 Авг 2019 в 07:00
221 +1
0
Ответы
1

Ошибку "does not contain a constructor that takes 8 arguments" можно исправить, добавив конструктор в класс Bill, который будет принимать параметры ID и Balance и вызывать базовый конструктор класса Object.

Вот исправленный код:

using System;
class Bill {
protected string ID { get; set; }
protected double Balance { get; set; }
protected double Persent;
public Bill(string ID, double Balance) {
this.ID = ID;
this.Balance = Balance;
Persent = 0.03;
}
}
class Depositor : Bill {
protected string FullName { get; set; }
protected string Passport { get; set; }
public Depositor(string FullName, string Passport, string ID, double Balance) : base(ID, Balance) {
this.FullName = FullName;
this.Passport = Passport;
}
}
class BillDepositor : Depositor {
protected double MaxBill { get; set; }
protected string Password { get; set; }
public BillDepositor(double MaxBill, string Password, string FullName, string Passport, string ID, double Balance)
: base(FullName, Passport, ID, Balance) {
this.MaxBill = MaxBill;
this.Password = Password;
}
}
class Program {
static void Main() {
BillDepositor bd = new BillDepositor(1000, "password123", "John Doe", "1234567890", "1", 500);
Console.WriteLine(bd.ID);
Console.WriteLine(bd.Balance);
Console.WriteLine(bd.FullName);
Console.WriteLine(bd.Passport);
Console.WriteLine(bd.MaxBill);
Console.WriteLine(bd.Password);
}
}

Теперь класс BillDepositor наследуется от классов Bill и Depositor, и ошибка должна быть исправлена.

20 Апр 2024 в 13:10
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир