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,结果标记为"公共抽象成员"自动?
答案 0 :(得分:4)
他们不是抽象成员,他们是Fields。
如果您没有指定任何访问修饰符,那么它们将被视为private
,这意味着它们只能在类中访问,并且您可以'在课外访问他们。
所以这一行:
int a, b, result;
表示
private int a, b, result;
使它们public
允许其他类使用这些字段。如果您只希望在继承的类中访问这些字段,请使用protected
。