c# - 类继承不适用于子类?
问题描述
namespace Littler_story
{
class Profession
{
public int Strength
{ public get; public set { if ((Strength + value) > Strength) {
Strength = value; } } }
public int Intelligence
{ public get; public set { if ((Intelligence + value) >
Intelligence) { Intelligence = value; } } }
public int Agility
{ public get; public set { if ((Agility + value) > Strength) {
Strength = value; } } }
public int Charisma
{ public get; public set { if ((Charisma + value) > Charisma) {
Charisma = value; } } }
public int Health
{ public get; public set { if ((Health + value) <= 0) {
Console.WriteLine("Game over!"); } } }
}
class FireFighter : Profession
{
Strength = 5;
Intelligence = 2;
Agility = 3;
Charisma = 3;
Health = 100;
}
我在 Firefighter 类中的所有属性都出现错误。我最初将所有变量定义为每个类中的局部变量。我最近学习了继承,因为我的所有五个专业类都具有相同的属性,我想我可以为它们创建一个超类。如您所见,它们是在 Professional 中定义的,但是将它们放在我的一个类(消防员)中会导致错误。如果我实现它,一个错误可能会跨越我的所有类。我猜这可能是我在 Profession 类中创建自动属性的方式?我得到的错误是,这些属性力量、敏捷、耐力等在当前上下文中不存在。
解决方案
你不能那样设置属性。您需要在构造函数中访问它们,或者通过实例化类然后设置继承的属性。
所以这样做的一种方法是:
FireFighter f = new FireFighter ();
f.Strength = 5;
或在构造方法中:
public class FireFighter : Profession
{
public FireFighter()
{
Strength = 5;
}
}
推荐阅读
- javascript - 重置关联数组的值
- ssrs-2012 - SSRS 订阅:将报告写入文件共享 - 并且 - 发送电子邮件通知
- javascript - 如何将多个(输入)值传递到查询字符串
- ms-access - MS-Access...使用表单上的最后一条记录信息创建一条新记录
- solr - 为什么不建议使用通配符搜索实现预输入?
- node.js - 如何防止我的node+express页面被搜索引擎收录?
- ruby-on-rails - 存储多维 counter_cache 的最佳方法是什么?
- android - Android 自定义显式意图
- apache-spark - 如何在 Pyspark 中按元素连接两个 ArrayType(StringType()) 列?
- python - Pandas read_csv:列被导入为行