C#
Создаем новое C# консольное приложение... и напишем код
using System;
namespace ConsoleApplication1
{
abstract class Person
{
abstract public void ShowInfo();
}
class Developer : Person
{
public bool IsWorkingNow = true;
override public void ShowInfo()
{
Console.WriteLine("Developer is working");
}
}
class Program
{
static void Main(string[] args)
{
Person myPerson = new Developer();
// способ 1. Используем is и ( )
if (myPerson is Developer)
{
Developer developer1 = (Developer)myPerson;
if (developer1.IsWorkingNow)
developer1.ShowInfo();
}
// способ 2. Используем pattern matching is
if (myPerson is Developer developer2 && developer2.IsWorkingNow)
developer2.ShowInfo();
// способ 3. Используем pattern matching switch
switch (myPerson)
{
case Developer developer3:
developer3.ShowInfo();
break;
case null:
Console.WriteLine("Объект не задан");
break;
default:
Console.WriteLine("Объект default");
break;
}
}
}
}