为什么我无法在派生类中使用基类的setter方法

时间:2014-11-25 16:31:33

标签: c# inheritance properties set derived-class

我最近从Java切换到C#,我想知道为什么我无法设置派生类的属性,如下例所示:

public abstract class Vehicle
{
    private string name;

    public void setName(string name) 
    {
        this.name = name; 
    }
}

public class Car : Vehicle
{
    setName("Car")
}

2 个答案:

答案 0 :(得分:2)

您的方法不能直接在类体中调用,必须从另一个方法(例如构造函数)调用。

试试这个:

public abstract class Vehicle
{
    private string name;

    public string getName()
    {
        return name;
    }

    public string setName(string name)
    {
        this.name = name; 
    }
}

public class Car : Vehicle
{
    public Car()
    {
        setName("Car");
    }
}

答案 1 :(得分:0)

您需要分配调用或其他方法来调用setName。编译器应该如何知道何时执行此方法调用?这样做:

public class Car : Vehicle
{
    public string SetCarName()
    {
       base.setName();
    }
}