为什么我在课外生成实例。我将继承snifC给sinifD我需要在构造函数的SinifD中创建实例sinifC sinifc = new sinifC()吗?
public class sinifC
{
public void method3()
{
Console.WriteLine("Deneme3");
}
}
public class sinifD : sinifC
{
void method4()
{
Console.WriteLine("Deneme4");
}
public sinifD()
{
sinifC sinifc = new sinifC();
sinifc.method3();
}
}
我想在下面做到:
public class sinifC
{
public void method3()
{
Console.WriteLine("Deneme3");
}
}
public class sinifD : sinifC
{
void method4()
{
Console.WriteLine("Deneme4");
}
sinifC sinifc = new sinifC();
sinifc.method3();
}
错误:无效的令牌'('在类,结构或接口成员声明中
答案 0 :(得分:3)
没有
sinifC sinifc = new sinifC();
sinifc.method3();
需要在方法内吗?
您似乎想要创建一个对象的实例并在类的主体内调用它的方法,但是您需要在方法内部实现它。
答案 1 :(得分:2)
您不必在构造函数中编写代码,但必须以某种方法编写代码。您目前只是在课堂上的任何地方编写代码。如果您不想创建D类的实例来执行此操作,则可以在D类中创建一个静态方法来创建C类的实例(您甚至可以使用静态构造函数)。
答案 2 :(得分:1)
类的主体中唯一有效的指令是声明(可选地包括字段的初始化)。方法调用在这里不是有效指令,它必须在方法
中答案 3 :(得分:1)
如果您通过扩展继承而使用继承,则无需创建sin实例。
class Program
{
static void Main(string[] args)
{
sinifD s = new sinifD();
// call method3 on sinfiD
s.method3();
}
}
public class sinifC
{
public void method3()
{
Console.WriteLine("Deneme3");
}
}
public class sinifD : sinifC
{
// sinifD inheritrs mehtod3 from sinifD
// method 4 is protected, so only classes in the class hierachy see that method
void method4()
{
Console.WriteLine("Deneme4");
}
}