class2 的继承变量不同于 class1 (C#)
inherited variable of class2 is different from class1 (C#)
我刚刚制作了一个 class 形状和另外 2 个 class 形状('Triangle' 和 'Square'),它们继承自 'Shapes'。
public class Shapes
{
private int sides;
}
public class Triangle : Shapes
{
public void init()
{
int sides = 3;
throw new System.NotImplementedException();
}
}
public class Square : Shapes
{
public void init()
{
int sides = 4;
throw new System.NotImplementedException();
}
}
代码使用Classdiagram设计
问题:我应该如何调用 class 才能显示形状有多少条边?
谢谢
您需要在 class 上添加一个 属性,它具有这样的访问器
public class Shapes
{
private int sides;
public int NumberOfSides { get { return sides; } }
}
那你可以去mySquare.NumberOfSides
您需要一个受保护的成员 sides,它在每个形状的初始部分中使用:
public class Shapes
{
protected readonly int sides;
public int NumberOfSides { get { return sides; } }
}
public class Triangle : Shapes
{
public Triangle()
{
this.sides = 3;
}
}
public class Square : Shapes
{
public Square()
{
this.sides = 4;
}
}
正如 Farhad Jabiyev 提到的,使用构造函数是初始化新实例的常用方法(参见我上面的代码)
现在,当您调用 Shape#NumberOfSides
时,Triangle
会得到 3 个,Square
会得到 4 个:
Shape square = new Square();
int number = square.NumberOfSides();
我刚刚制作了一个 class 形状和另外 2 个 class 形状('Triangle' 和 'Square'),它们继承自 'Shapes'。
public class Shapes
{
private int sides;
}
public class Triangle : Shapes
{
public void init()
{
int sides = 3;
throw new System.NotImplementedException();
}
}
public class Square : Shapes
{
public void init()
{
int sides = 4;
throw new System.NotImplementedException();
}
}
代码使用Classdiagram设计
问题:我应该如何调用 class 才能显示形状有多少条边?
谢谢
您需要在 class 上添加一个 属性,它具有这样的访问器
public class Shapes
{
private int sides;
public int NumberOfSides { get { return sides; } }
}
那你可以去mySquare.NumberOfSides
您需要一个受保护的成员 sides,它在每个形状的初始部分中使用:
public class Shapes
{
protected readonly int sides;
public int NumberOfSides { get { return sides; } }
}
public class Triangle : Shapes
{
public Triangle()
{
this.sides = 3;
}
}
public class Square : Shapes
{
public Square()
{
this.sides = 4;
}
}
正如 Farhad Jabiyev 提到的,使用构造函数是初始化新实例的常用方法(参见我上面的代码)
现在,当您调用 Shape#NumberOfSides
时,Triangle
会得到 3 个,Square
会得到 4 个:
Shape square = new Square();
int number = square.NumberOfSides();