C# C中类的两种使用方法#
这个问题听起来很奇怪,为什么要贴出来,因为它在脑海中总是一个很大的困惑 下面是我使用继承的代码C# C中类的两种使用方法#,c#,inheritance,C#,Inheritance,这个问题听起来很奇怪,为什么要贴出来,因为它在脑海中总是一个很大的困惑 下面是我使用继承的代码 class Program:Identity { static void Main(string[] args) { Identity id = new Identity(); Console.WriteLine(id.name); Console.WriteLine(id.age);
class Program:Identity
{
static void Main(string[] args)
{
Identity id = new Identity();
Console.WriteLine(id.name);
Console.WriteLine(id.age);
Console.WriteLine(id.DOB);
Console.WriteLine(id.employed);
Console.WriteLine(id.grade);
Console.WriteLine(id.experience);
Console.WriteLine(id.metric);
Console.WriteLine(id.intermediate);
Console.WriteLine(id.UG);
Console.WriteLine(id.PG);
Console.ReadKey();
}
}
class Identity:Occupation
{
public string name{ get; set; }
public int age { get; set; }
public DateTime DOB { get; set; }
public Identity()
{
name = "Mr. Xyz";
age = 35;
DOB = DateTime.Now.Date;
}
}
class Occupation:Education
{
public string employed { get; set; }
public string grade { get; set; }
public int experience { get; set; }
public Occupation()
{
employed = "employed-yes";
grade = "B-Level";
experience = 2;
}
}
class Education
{
public string metric { get; set; }
public string intermediate { get; set; }
public string UG { get; set; }
public string PG { get; set; }
public Education()
{
metric = "metric-yes";
intermediate = "intermediate-yes";
UG = "UG-yes";
PG = "PG-No";
}
}
2.]现在使用外部类文件执行相同的代码
class Program
{
static void Main(string[] args)
{
Person p = new Person();
p.set_values();
Console.WriteLine(p.name);
Console.WriteLine(p.age);
Console.WriteLine(p.DOB);
Console.WriteLine(p.employed);
Console.WriteLine(p.grade);
Console.WriteLine(p.experience);
Console.WriteLine(p.metric);
Console.WriteLine(p.intermediate);
Console.WriteLine(p.UG);
Console.WriteLine(p.PG);
Console.ReadKey();
}
}
class Person
{
public string name;
public int age;
public DateTime DOB;
public string employed;
public string grade;
public int experience;
public string metric;
public string intermediate;
public string UG;
public string PG;
public void set_values()
{
name = "Mr. ABC";
age = 20;
DOB = DateTime.Now.Date;
employed = "employed-No";
grade = "None";
experience = 2;
metric = "metric-yes";
intermediate = "intermediate-yes";
UG = "UG-No";
PG = "PG-No";
}
}
我的问题是继承的好处是什么,什么时候使用它,我总是能够通过创建对象来使用另一个类,在我小小的编程生涯中从不使用继承。有人能告诉我们这一点吗?什么时候继承,为什么继承。
请让我知道,如果这个问题你不清楚,我会尽量让它更清楚 你需要这么做的原因有很多
- 当您反序列化DB响应或JSON数据时,它将是必需的,该数据的格式与第一个示例中提到的类结构相同
- 模块化的代码总是更容易处理
- 您可以重用该类来定义不同的数据集,这些数据集不属于同一结构(或者可以说处理不一致的数据)
- 可以重用基类来定义另一组派生类
还有更多的理由去继承遗产。如果你想创建一个继承层次结构
类B:A
,你可以通过谷歌来了解它为什么有用
- 每个
都是B
?A
- 如果没有,不要使用继承,单独设计它们
- 每个
AA
?B
- 如果是这样,不要使用继承,而是将它们设计为一个类
- 没有
的B
在我的程序中有什么用处吗?A
- 如果不是,不要使用继承,这将是过度工程。而是将它们设计为一个类
这个列表可能仍然不完整,只考虑它是一个起点,
我认为你的例子不是一个好的例子,因为<代码>职业不是一个专门的代码< <代码> >,并且<代码>身份> <代码>不是<代码>职业>代码的一种特殊形式。(有些哲学专业的学生可能不同意,但这不是重点)而且,Identity
不是一个程序
关于谷歌的有用信息很少,几乎什么都没有。顺便说一句,谢谢你的回复,但是如果每个B a或它们都有相似或相关的属性,那么继承就很合适,但不使用单独的类文件来实现相同的功能是更模块化的吗?@Saurabh Inheri实例并不真正关心文件……当然,对于一个严肃的项目,您应该将每个类写入一个单独的文件中。此外,不要再谈论“或者它们具有类似或相关的属性”,就好像它与“B是a”是同一回事一样。这些情况完全不同,只是一些相似性不足以用于继承。