2025-05-12 02:48:54 +03:00
|
|
|
|
/*
|
|
|
|
|
* Author: Nikolay Dvurechensky
|
|
|
|
|
* Site: https://www.dvurechensky.pro/
|
|
|
|
|
* Gmail: dvurechenskysoft@gmail.com
|
|
|
|
|
* Last Updated: 12 мая 2025 02:47:11
|
|
|
|
|
* Version: 1.0.3
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
using System;
|
2024-10-05 09:59:53 +03:00
|
|
|
|
|
|
|
|
|
class Kraft
|
|
|
|
|
{
|
|
|
|
|
public string FirstName { get; set; }
|
|
|
|
|
public string LastName { get; set; }
|
|
|
|
|
|
|
|
|
|
public void PrintName() => Console.WriteLine($"Name: {FirstName}");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Выполнено наследование
|
|
|
|
|
/// все свойства, методы и поля унаследованы
|
|
|
|
|
/// </summary>
|
|
|
|
|
class Ivuc : Kraft
|
|
|
|
|
{
|
|
|
|
|
public void PrintLastName() => Console.WriteLine($"LastName: {LastName}");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// наследование в Объектно-ориентированном программировании (ООП)
|
|
|
|
|
/// позволяет избежать ненужного дублирования кода
|
|
|
|
|
/// позволяет реализовать полиморфизм
|
|
|
|
|
/// множественного наследования в C# нет (для классов)
|
|
|
|
|
/// </summary>
|
|
|
|
|
class Program
|
|
|
|
|
{
|
|
|
|
|
static void Main()
|
|
|
|
|
{
|
|
|
|
|
var kraft = new Kraft
|
|
|
|
|
{
|
|
|
|
|
FirstName = "terry",
|
|
|
|
|
LastName = "lamos"
|
|
|
|
|
};
|
|
|
|
|
kraft.PrintName();
|
|
|
|
|
|
|
|
|
|
var ivuc = new Ivuc
|
|
|
|
|
{
|
|
|
|
|
FirstName = "terry",
|
|
|
|
|
LastName = "lamos"
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
ivuc.PrintName();
|
|
|
|
|
ivuc.PrintLastName();
|
|
|
|
|
|
|
|
|
|
// Можно при инициализацими экземпляра класса, инициализировать его наследника
|
|
|
|
|
// Тем самым, это помогает в работе старого функционала - он может работать и с наследниками
|
|
|
|
|
var kraft_ivuc = new Ivuc
|
|
|
|
|
{
|
|
|
|
|
FirstName = "terry",
|
|
|
|
|
LastName = "lamos"
|
|
|
|
|
};
|
|
|
|
|
PrintFullName(kraft_ivuc);
|
|
|
|
|
|
|
|
|
|
var teacher = new Teacher
|
|
|
|
|
{
|
|
|
|
|
FirstName = "John",
|
|
|
|
|
LastName = "Karter"
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var student = new Student
|
|
|
|
|
{
|
|
|
|
|
FirstName = "Garry",
|
|
|
|
|
LastName = "Astos"
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
LP[] people = { teacher, student };
|
|
|
|
|
PrintLP(people);
|
|
|
|
|
Console.ReadKey();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void PrintFullName(Kraft kraft)
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine($"Name: {kraft.FirstName} LastName: {kraft.LastName}");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void PrintLP(LP[] persons)
|
|
|
|
|
{
|
|
|
|
|
foreach (var person in persons)
|
|
|
|
|
person.PrintFullName();
|
|
|
|
|
}
|
|
|
|
|
}
|