C# 继承基类并更改属性名称
考虑书桌结构: BookId、IsEbook、ISBN、PubDate、电子书格式 一本书可以是硬拷贝,也可以是基于IsEbook列值的电子书 方法的输出将有两个集合,一个用于书籍,另一个用于电子书C# 继承基类并更改属性名称,c#,C#,考虑书桌结构: BookId、IsEbook、ISBN、PubDate、电子书格式 一本书可以是硬拷贝,也可以是基于IsEbook列值的电子书 方法的输出将有两个集合,一个用于书籍,另一个用于电子书 书 书呆子 ISBN 出版日期 电子书 电子书 ISBN 出版日期 电子书格式 BookId和EBookId是从BookId列获取其值的不同属性 我是否创建了两个类,一个用于Book,另一个用于Ebook,或者我是否可以以某种方式使用继承,因为BookId和EBookId在表中是相同的,
- 书
- 书呆子
- ISBN
- 出版日期
- 电子书
- 电子书
- ISBN
- 出版日期
- 电子书格式
提前谢谢。我会创建两个类,Book和EBook,但您可以将BookId、ISBN和PubDate放在一个界面中,例如
IBook
。通过这种方式,您可以编写适用于两者的逻辑,而不必具有相同的属性名称。只有公共/共享实体才能在基类中组合在一起
如果一个属性有不同的名称,那么它不是共享的,所以不应该在公共基类中,即使它非常非常相似。因此,在本例中,您只有ISBN和PubDate的共同点
您可以使基类抽象,这样它就不能自己实例化
但您也可以使用不同的方法,在接口中指定通用性,并使您的book&EBook类使用此方法而不是基类。像这样:
public interface IBook
{
DateTime PubDate { get; set; }
string ISDN { get; set; }
}
public class Book: IBook
{
public DateTime PubDate { get ; set ; } //Comes from IBook
public string ISDN { get ; set ; } //Comes from IBook
public int BookId { get; set; }
}
public class EBook : IBook
{
public DateTime PubDate { get; set; } //Comes from IBook
public string ISDN { get; set; } //Comes from IBook
public int EBookId { get; set; }
public string EbookFormat { get; set; }
}
我认为你把事情复杂化了。书就是书。无论是电子书、精装书、平装书。。。是那本书的财产。哪个iSBN?有两个标准;)