首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >功能实现

功能实现
EN

Stack Overflow用户
提问于 2021-12-14 17:48:06
回答 2查看 84关注 0票数 0

有谁能告诉我,如何在主体上实现我的功能?所有的工作,但我想做一个雇主的目录,那么如何写雇主名单或大量?

代码语言:javascript
运行
复制
class Catalog : Employe
{
    Employe[] employes = new Employe[10];

    Employe p1 = new Employe(14, "Mark", "James", 124151, "Coder", 4000);

    public Catalog(int _age, string _firstName, string _lastName, int _id, string _job, int _salary) : base(_age, _firstName, _lastName, _id, _job, _salary)
    {
        employes[1] = p1;
    }

    public void CatalogLog()
    {
        for(int i = 0; i < employes.Length; i++)
            Console.WriteLine(employes[i]);
    } 
}

class TestInheritence
{
    public static void Main(string[] args)
    {
        Employe[] employes = new Employe[10];
    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-12-14 18:21:52

我认为您没有用正确的逻辑设置继承层次结构。基类Employee是可扩展的,包含基本方法:

代码语言:javascript
运行
复制
public class Employee
{
    private int _id;
    private string _firstName; 
    
    public Employee(int id, string firstName)
    {
        _id = id;
        _firstName = firstName;
    }
    
    public int GetID()
    {
        return _id;
    }
    
    public void SetID(int id)
    {
        if(id > 0)
            _id = id;
    }   
    
    public void Print()
    {
        Console.WriteLine("ID: {0}\tFirst Name: {1}", this._id, this._firstName);
    }
}

派生类允许通过向基类的属性添加新方法和属性来展开对象:

代码语言:javascript
运行
复制
public class Manager : Employee 
{
    private string _city;
    
    public Manager(int id, string firstName, string city) : base(id, firstName)
    {
        _city = city;
    }
    
    public string GetCity()
    {
        return _city;
    }
}

要测试这两个类的工作方式,可以查看下面的应用程序代码:

代码语言:javascript
运行
复制
public class Program
{
    public static void Main()
    {           
        Employee[] employees = new[]
        {
            new Employee(1, "Thomas"),
            new Employee(2, "John"),
            new Employee(3, "Erick"),
            new Employee(4, "Ahmet"),
            new Employee(5, "Sun")
        };
        
        employees[0].Print();
        
        Manager manager = new Manager(6, "Johnson", "London");
        manager.Print();
        Console.WriteLine("City: {0}", manager.GetCity());
    }
}
票数 1
EN

Stack Overflow用户

发布于 2021-12-14 18:13:53

如果要将员工添加到目录中,可以使用“添加”函数将雇员添加到目录中:

代码语言:javascript
运行
复制
class Catalog : Employe
{
    List<Employe> employes = new List<Employe>();
    
    public void AddEmployee(int _age, string _firstName, string _lastName, int _id, string _job, int _salary) : base(_age, _firstName, _lastName, _id, _job, _salary)
    {
        Employe p1 = new Employe(_age, _firstName, _lastName, _id, _job, _salary);

        employes.Add(p1);
    }

    public void CatalogLog()
    {
        for(int i = 0; i < employes.Count(); i++)
            Console.WriteLine(employes[i]);
    } 
}

class TestInheritence
{
    public static void Main(string[] args)
    {
        Catalog catalog = new Catalog();
        catalog.AddEmployee(14, "Mark", "James", 124151, "Coder", 4000);
        // Add more employees.
        
    }
    
}

但我认为这是继承的错误用例。通常,当类型之间存在“is -a”关系时,您希望继承。但是“目录”不是“雇员”的类型。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70353413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档