为什么不将抽象成员自动标记为公开?

时间:2015-03-04 18:31:58

标签: c#

abstract class mybase
{
    public int a, b, result;

    public int Multi()
    {
        return 0;
    }
}

class derived : mybase
{        
    static void Main()
    {
        derived de = new derived();

        Console.WriteLine("Result of 3 * 5 = {0}", de.Multi());
        Console.ReadLine();
    }

    public int Multi()
    {
        a = 3;
        b = 5;
        return (result = a * b);
    }
}

如果我改变了行:

public int a, b, result;

 int a, b, result;

它不起作用。

我的问题是:为什么不将变量a,b,结果标记为"公共抽象成员"自动?

1 个答案:

答案 0 :(得分:4)

他们不是抽象成员,他们是Fields

如果您没有指定任何访问修饰符,那么它们将被视为private,这意味着它们只能在中访问,并且您可以'在课外访问他们。

所以这一行:

int a, b, result;

表示

private int a, b, result;

使它们public允许其他类使用这些字段。如果您只希望在继承的类中访问这些字段,请使用protected