gpt4 book ai didi

c# - 同时使用抽象类和接口(interface)的原因? (抽象类实现接口(interface))

转载 作者:IT王子 更新时间:2023-10-29 04:29:22 25 4
gpt4 key购买 nike

最近我在一些代码中发现了一个奇怪的模式。我们知道凡事都有时间和地点,尤其是在涉及 ABC 和接口(interface)的问题时,但这对我来说似乎是多余的。

  // This describes a person....
public interface IPerson
{
public string FirstName { get; set; }
public string LastName { get; set; }
public int BasePay { get; set; }
public string Address { get; set; }
}

// And so does this, but it also uses the interface....
public abstract class Person : IPerson
{
public string FirstName { get; set; }
public string LastName { get; set; }
public int BasePay { get; set; }
public string Address { get; set; }
}

// This uses both ?!
public class CoalMiner : Person, IPerson
{
public CoalMiner()
{
BasePay = 10000;
}
}

谁能想到同时使用 ABC 和定义相同成员的接口(interface)的具体优势是什么?

最佳答案

就我个人而言,我觉得使用界面来描述一个“名词”,例如一个人,通常是一个糟糕的设计选择。

接口(interface)应该用于契约——所有人总是一个Person ,所以抽象类在这里更有意义。可以为特定类型的人的行为添加接口(interface),或者允许 Person通过履行契约(Contract)以某种方式使用(即:Person : IComparable<Person>)。

关于c# - 同时使用抽象类和接口(interface)的原因? (抽象类实现接口(interface)),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6192221/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com