好的,这就是练习:
定义一个名为student的类, 包含三个等级的学生。 该类将具有该功能 计算平均成绩。现在, 定义一个名为student1的类 将来自学生和意志 添加一个函数来计算总和 成绩。在主程序中,定义 学生变量和类型的对象 student1。执行放置 对象变量并运行 学生的功能。
注意:这不是作业,我是自己学习的。 这是代码:
class Student
{
protected int grade1, grade2, grade3;
public Student(int grade1, int grade2, int grade3)
{
this.grade1 = grade1;
this.grade2 = grade2;
this.grade3 = grade3;
}
public double Average()
{
return (grade1 + grade2 + grade3) / 3;
}
}
class Student1 : Student
{
public Student1(int grade1, int grade2, int grade3)
: base(grade1, grade2, grade3)
{
}
public double Sum()
{
return grade1 + grade2 + grade3;
}
}
class Program
{
static void Main(string[] args)
{
}
}
我真的不知道在主课上要做什么,我该如何进行这个位置呢?我想知道这样做有什么好处,让我知道到目前为止我是否有错误,非常感谢。
答案 0 :(得分:1)
完全按照练习描述的内容:
// Define a student variable.
Student s;
// And object of type Student1.
Student1 s1 = new Student1(10, 5, 8);
// Perform placement of the object to variable.
s = s1;
// And run the function of Student1.
// But it makes no sense...
s1.Sum();
// Maybe the exercise wants it:
((Student1)s).Sum();
// Which makes no sense too, since is making an idiot cast.
// But for learning purposes, ok.
嗯,我不认为这项工作有利于polymorphism in C#。我建议您阅读链接以查看真实的使用示例。
答案 1 :(得分:1)
从OOP角度看,我在代码中看到的主要缺陷是让Student1从Student扩展。使用继承时,请确保它是一个真正的扩展(是a)。通过制作1个学生班并实施Sum和Average方法,您可以获得更好的服务。
我认为从OOP的角度来看,以下内容就足够了。
class Student
{
protected int grade1, grade2, grade3;
public Student(int grade1, int grade2, int grade3)
{
this.grade1 = grade1;
this.grade2 = grade2;
this.grade3 = grade3;
}
public double Average()
{
return (grade1 + grade2 + grade3) / 3;
}
public double Sum()
{
return grade1 + grade2 + grade3;
}
}
答案 2 :(得分:1)
也许这就是它意味着什么......虽然它在我眼中的措辞非常糟糕。
在主程序中,定义学生变量和student1类型的对象。执行将对象放置到变量并运行student1的功能。
static void Main(string[] args)
{
//define a student variable and object of type student1.
Student student = new Student1(100, 99, 98);
//Perform placement of the object to variable and run the function of student1
var sum = ((Student1)student ).Sum();
}
答案 3 :(得分:1)
好的:我想这就是他们正在寻找的东西,虽然英语有点啰嗦:
1)声明学生变量
Student s;
2)声明Student1对象
Student1 s1 = new Student1(1,2,3);
3)将对象放置到变量:
s = s1;
4)运行该函数(注意,您必须将s转换为Student1类型以访问Type特定函数Sum)
Console.WriteLine(((Student1)s).Sum());