Как реализовать программно иерархию классов? Доброго времени суток!
Есть задача, которую надо выполнить:
Разработать и реализовать программно иерархию классов для работы со счетом вкладчика банка. Для этого следует выполнить следующие задачи:
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
198 +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
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 96 005 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир