using System;
using Lesson06.Animals;
using Lesson06.Devices;

namespace Lesson06
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("=== 继承演示 ===\n");

            // 继承：Dog 继承了 Animal
            Dog dog = new Dog("旺财", "金毛");
            dog.Eat();
            dog.Speak();
            dog.Info();

            Console.WriteLine("\n=== 方法重写 ===\n");

            // 多态：Cat 和 Dog 重写了 Speak
            Animal cat = new Cat("小猫");
            Animal dog2 = new Dog("二狗", "哈士奇");

            cat.Speak();
            dog2.Speak();

            Console.WriteLine("\n=== 接口演示 ===\n");

            // 使用接口
            Microphone mic = new Microphone("USB麦克风");
            Camera cam = new Camera("RTSP摄像头");

            mic.Connect();
            mic.Disconnect();

            Console.WriteLine();

            cam.Connect();
            cam.Disconnect();

            Console.WriteLine("\n=== 接口多态 ===\n");

            // 接口类型可以指向任何实现它的类
            IDevice device1 = new Microphone("设备A");
            IDevice device2 = new Camera("设备B");

            device1.Connect();
            device2.Connect();

            Console.WriteLine("\n=== 完成 ===");
            Console.ReadLine();
        }
    }
}
