c#上班,上学,交通方式接口

cs 复制代码
using System;


namespace INTERFACE
{
    abstract class Person
    {
        public string Name { get; set; }
        public int Age { get; set; }

        public virtual void ShowInfo()
        {
            Console.WriteLine($"Name: {Name}, Age: {Age}");
        }
    }

    // 接口 IWork
    interface IWork
    {
        void GotoCompany();
    }

    // 接口 IStudy
    interface IStudy
    {
        void GotoSchool();
    }

    // 接口 ITransport
    interface ITransport
    {
        void Transport();
    }

    // Student 类
    class Student : Person, IStudy, ITransport
    {
        public string School { get; set; }

        public override void ShowInfo()
        {
            Console.WriteLine($"School: {School} Name: {Name}, Age: {Age}");
        }

        public void GotoSchool()
        {
            Console.WriteLine($"去{School}上学");
        }

        public void Transport()
        {
            Console.WriteLine("乘地铁去学校");
        }
    }


    class Engineer : Person, IWork, ITransport
    {
        public string Company { get; set; }

        public override void ShowInfo()
        {
            Console.WriteLine($"Name: {Name}, Age: {Age}");
            Console.WriteLine($"Company: {Company}");
        }

        public void GotoCompany()
        {
            Console.WriteLine($"去{Company}上班");
        }

        public void Transport()
        {
            Console.WriteLine("开车去公司");
        }
    }

    class Program
    {
        static void Main()
        {
            Student student = new Student { Name = "Alice", Age = 20, School = "南京工业职业技术大学" };
            student.ShowInfo();
            student.Transport();
            student.GotoSchool();

            Engineer engineer = new Engineer { Name = "Bob", Age = 30, Company = "华为" };
            engineer.ShowInfo();
            engineer.GotoCompany();
            engineer.Transport();
            Console.Read();
        }
    }
}
相关推荐
草莓熊Lotso25 分钟前
【C++ 基于微服务的即时通讯系统】文件存储子服务实战:UUID生成、文件IO封装与全接口单元测试
开发语言·网络·数据库·c++·微服务·架构·单元测试
huaqianzkh1 小时前
WinForm C#:循环修改控件UI闪烁卡顿?SuspendLayout / ResumeLayout 与 BeginUpdate 优化
开发语言·ui·c#
沐晓时光12 小时前
C语言入门,内存函数知识讲解
c语言·开发语言
David猪大卫18 小时前
【C++修炼】map 和 set 的使用
c语言·开发语言·数据结构·c++·经验分享·笔记·学习
用户37215742613518 小时前
C# 实现 Excel 单元格保护:锁定公式并允许编辑指定区域
c#·ai编程·编程语言
fengci.19 小时前
CTF2MISC中等部分
开发语言·前端·学习
xys_67820 小时前
JavaEE通关手册:初识Java
java·开发语言
ShineWinsu1 天前
对于Qt:QTableWidget常见属性以及QTableWidgetItem类的解析
开发语言·c++·qt·gui·客户端·表格·qtablewidget
ShineWinsu1 天前
对于Qt:QListWidget常见属性以及QListWidgetItem类的解析
开发语言·c++·qt·客户端·列表·qlistwidget·qlistwidgetitem
吴名氏.1 天前
Java转AI Agent教程(第十二周)检索与切分
java·开发语言·人工智能·ai·ai agent