Методы наследования классов - C#
Формулировка задачи:
Разработать класс OldPassport, являющийся наследником класса Passport, добавив следующие поля:
dateChange (дата обмена),
reason (причина обмена).
Предыдущее задание, на основе которого решается это (задание решено, программа работает):
Код программы для класса наследника
И моя попытка собрать код воедино, увы неудачная
Приношу извинения за возможное неправильное оформление кода программы, в программировании я увы не спец, но хочу разобраться с данным заданием и буду признателен за указания на ошибки и советы по решению.
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace ConsoleApplication1
- {
- public class Passport
- {
- public string Who { get; set; }
- public DateTime Date { get; set; }
- public int Number { get; set; }
- public int Serial { get; set; }
- public Passport(int serial, int number, DateTime date, string who)
- {
- Serial = serial;
- Number = number;
- Date = date;
- Who = who;
- }
- public DateTime GetChangeTime()
- {
- return Date.AddYears(15);
- }
- public static bool operator >(Passport a, Passport b)
- {
- return a.Date < b.Date;
- }
- public static bool operator <(Passport a, Passport b)
- {
- return a.Date > b.Date;
- }
- public override string ToString() //Автоматически вызовется при вызове Console.Write()
- {
- return String.Format("Серия паспорта: {0}, Номер: {1}, Дата выдачи: {2}, Кем выдан: {3}, Дата обмена {4}", Serial, Number, Date, Who, GetChangeTime());
- }
- }
- class Program
- {
- static void Main(string[] args)
- {
- const int PassportS_COUNT = 2;
- Passport[] passports = new Passport[PassportS_COUNT];
- for (int i = 0; i < passports.Length; i++)
- {
- Console.WriteLine("Введите данные о {0} паспорте:", i + 1);
- Console.Write(" Серия: ");
- var serial = Convert.ToInt32(Console.ReadLine());
- Console.Write(" Номер: ");
- var number = Convert.ToInt32(Console.ReadLine());
- Console.Write(" Дата выдачи: ");
- var date = Convert.ToDateTime(Console.ReadLine());
- Console.Write(" Кем выдан: ");
- var who = Console.ReadLine();
- passports[i] = new Passport(serial, number, date, who);
- }
- PrintPassports(passports);
- }
- private static void PrintPassports(Passport[] passports)
- {
- Console.WriteLine("Список паспортов:");
- foreach (Passport passport in passports)
- {
- Console.WriteLine(" {0}", passport);
- }
- Console.ReadKey();
- }
- }
- }
Листинг программы
- public class OldPassport : Passport
- {
- private string Reason { get; set; }
- private DateTime DateChange { get; set; }
- public OldPassport(DateTime dateChange, string reason)
- {
- DateChange = dateChange;
- Reason = reason;
- }
- }
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace ConsoleApplication1
- {
- public class Passport
- {
- private string Who { get; set; }
- private DateTime Date { get; set; }
- private int Number { get; set; }
- private int Serial { get; set; }
- public Passport(int serial, int number, DateTime date, string who)
- {
- Serial = serial;
- Number = number;
- Date = date;
- Who = who;
- }
- public DateTime GetChangeTime()
- {
- return Date.AddYears(15);
- }
- public static bool operator >(Passport a, Passport b)
- {
- return a.Date < b.Date;
- }
- public static bool operator <(Passport a, Passport b)
- {
- return a.Date > b.Date;
- }
- public override string ToString() //Автоматически вызовется при вызове Console.Write()
- {
- return String.Format("Серия паспорта: {0}, Номер: {1}, Дата выдачи: {2}, Кем выдан: {3}, Дата обмена {4}", Serial, Number, Date, Who, GetChangeTime());
- }
- }
- public class OldPassport : Passport
- {
- private string Reason { get; set; }
- private DateTime DateChange { get; set; }
- public OldPassport(DateTime dateChange, string reason)
- {
- DateChange = dateChange;
- Reason = reason;
- }
- }
- class Program
- {
- static void Main(string[] args)
- {
- Passport[] passports = new Passport[2];
- for (int i = 0; i < passports.Length; i++)
- {
- Console.WriteLine("Введите данные о {0} паспорте:", i + 1);
- Console.Write(" Серия: ");
- var serial = Convert.ToInt32(Console.ReadLine());
- Console.Write(" Номер: ");
- var number = Convert.ToInt32(Console.ReadLine());
- Console.Write(" Дата выдачи: ");
- var date = Convert.ToDateTime(Console.ReadLine());
- Console.Write(" Кем выдан: ");
- var who = Console.ReadLine();
- passports[i] = new Passport(serial, number, date, who);
- }
- PrintPassports(passports);
- OldPassport[] OldPassport = new OldPassport[2];
- for (int i = 0; i < passports.Length; i++)
- {
- Console.WriteLine("Введите данные о {0} старом паспорте:", i + 1);
- Console.Write(" Дата обмена: ");
- var dateChange = Convert.ToDateTime(Console.ReadLine());
- Console.Write(" Причина обмена: ");
- var reason = Console.ReadLine();
- OldPassport[i] = new OldPassport(dateChange, reason);
- }
- PrintOldPassport(OldPassport);
- }
- private static void PrintPassports(Passport[] passports)
- {
- Console.WriteLine("Список паспортов:");
- foreach (Passport passport in passports)
- {
- Console.WriteLine(" {0}", passport);
- }
- }
- private static void PrintOldPassport(OldPassport[] OldPassport)
- {
- Console.WriteLine("Список паспортов:");
- foreach (OldPassport OldPassport in OldPassport)
- {
- Console.WriteLine(" {0}", OldPassport);
- }
- Console.ReadKey();
- }
- }
- }
Решение задачи: «Методы наследования классов»
textual
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace ConsoleApplication1
- {
- public class Passport
- {
- private string Who { get; set; }
- private DateTime Date { get; set; }
- private int Number { get; set; }
- private int Serial { get; set; }
- public Passport(int serial, int number, DateTime date, string who)
- {
- Serial = serial;
- Number = number;
- Date = date;
- Who = who;
- }
- public DateTime GetChangeTime()
- {
- return Date.AddYears(15);
- }
- public static bool operator >(Passport a, Passport b)
- {
- return a.Date < b.Date;
- }
- public static bool operator <(Passport a, Passport b)
- {
- return a.Date > b.Date;
- }
- public override string ToString() //Автоматически вызовется при вызове Console.Write()
- {
- return String.Format("Серия паспорта: {0}, Номер: {1}, Дата выдачи: {2}, Кем выдан: {3}, Дата обмена {4}", Serial, Number, Date, Who, GetChangeTime());
- }
- }
- public class OldPassport : Passport
- {
- private string Reason { get; set; }
- private DateTime DateChange { get; set; }
- public OldPassport(DateTime dateChange, string reason, int serial, int number, DateTime date, string who): base (serial, number, date, who)
- {
- {
- DateChange = dateChange;
- Reason = reason;
- }
- }
- class Program
- {
- static void Main(string[] args)
- {
- Passport[] passports = new Passport[2];
- for (int i = 0; i < passports.Length; i++)
- {
- Console.WriteLine("Введите данные о {0} паспорте:", i + 1);
- Console.Write(" Серия: ");
- var serial = Convert.ToInt32(Console.ReadLine());
- Console.Write(" Номер: ");
- var number = Convert.ToInt32(Console.ReadLine());
- Console.Write(" Дата выдачи: ");
- var date = Convert.ToDateTime(Console.ReadLine());
- Console.Write(" Кем выдан: ");
- var who = Console.ReadLine();
- passports[i] = new Passport(serial, number, date, who);
- }
- PrintPassports(passports);
- OldPassport[] OldPassport = new OldPassport[2];
- for (int i = 0; i < passports.Length; i++)
- {
- Console.WriteLine("Введите данные о {0} старом паспорте:", i + 1);
- Console.Write(" Дата обмена: ");
- var dateChange = Convert.ToDateTime(Console.ReadLine());
- Console.Write(" Причина обмена: ");
- var reason = Console.ReadLine();
- Console.Write(" Серия: ");
- var serial = Convert.ToInt32(Console.ReadLine());
- Console.Write(" Номер: ");
- var number = Convert.ToInt32(Console.ReadLine());
- Console.Write(" Дата выдачи: ");
- var date = Convert.ToDateTime(Console.ReadLine());
- Console.Write(" Кем выдан: ");
- var who = Console.ReadLine();
- OldPassport[i] = new OldPassport(dateChange, reason, serial, number, date, who);
- }
- PrintOldPassport(OldPassport);
- }
- private static void PrintPassports(Passport[] passports)
- {
- Console.WriteLine("Список паспортов:");
- foreach (Passport passport in passports)
- {
- Console.WriteLine(" {0}", passport);
- }
- }
- private static void PrintOldPassport(OldPassport[] OldPassport)
- {
- Console.WriteLine("Список старых паспортов:");
- foreach (OldPassport Passport in OldPassport)
- {
- Console.WriteLine(" {0}", OldPassport);
- }
- Console.ReadKey();
- }
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д