Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 多态性-运动_C# - Fatal编程技术网

C# 多态性-运动

C# 多态性-运动,c#,C#,好的,这就是练习: 定义一个名为student的类, 包含三个年级的学生。 该类将有一个函数 计算平均成绩。现在 定义一个名为student1的类 将源于学生和遗嘱 添加一个函数来计算 等级。在主程序中,定义 类型的student变量和对象 学生1。执行文件的放置 对象,并运行 学生的作用1 注意:这不是家庭作业,我是自己学的。 代码如下: class Student { protected int grade1, grade2, grade3; public Student(i

好的,这就是练习:

定义一个名为student的类, 包含三个年级的学生。 该类将有一个函数 计算平均成绩。现在 定义一个名为student1的类 将源于学生和遗嘱 添加一个函数来计算 等级。在主程序中,定义 类型的student变量和对象 学生1。执行文件的放置 对象,并运行 学生的作用1

注意:这不是家庭作业,我是自己学的。 代码如下:

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)
    {
    }
}

我真的不知道在主课上该做什么,我该如何做这个安排,而且,我想知道这样做的好处是什么,如果到目前为止我有错误,请告诉我,非常感谢。

下面就是练习中描述的内容:

// 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.

嗯,我不认为这个练习是在利用任何优势。我建议您阅读该链接以查看实际使用示例。

以下是练习中描述的内容:

// 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.

嗯,我不认为这个练习是在利用任何优势。我建议您阅读该链接以查看实际使用示例。

从面向对象的角度来看,我在代码中看到的主要缺陷是使Student1从Student扩展。当使用继承时,请确保它是一个真正的扩展。你最好是让一个学生上课,并实施总和和平均法

我认为从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;
    }
}

从OOP的角度来看,我在代码中看到的主要缺陷是使Student1从Student扩展。当使用继承时,请确保它是一个真正的扩展。你最好是让一个学生上课,并实施总和和平均法

我认为从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;
    }
}

也许这就是它的意思。。虽然在我眼里这句话真的很糟糕

在主程序中,定义student1类型的student变量和对象。将对象放置到变量并运行student1的函数


也许这就是它的意思。。虽然在我眼里这句话真的很糟糕

在主程序中,定义student1类型的student变量和对象。将对象放置到变量并运行student1的函数


好的:我想这就是他们要找的,尽管英语有点蹩脚:

1声明学生变量

 Student s;
2声明Student1对象

 Student1 s1 = new Student1(1,2,3);
3执行对象到变量的放置:

s = s1;
4运行函数注意:您必须将s转换为Student1类型才能访问特定于类型的函数Sum

Console.WriteLine(((Student1)s).Sum());

好的:我想这就是他们要找的,尽管英语有点蹩脚:

1声明学生变量

 Student s;
2声明Student1对象

 Student1 s1 = new Student1(1,2,3);
3执行对象到变量的放置:

s = s1;
4运行函数注意:您必须将s转换为Student1类型才能访问特定于类型的函数Sum

Console.WriteLine(((Student1)s).Sum());


他们要求:定义一个student1类型的student变量和对象。执行对象到变量的放置并运行student1的函数。恐怕您的答案似乎不符合要求。@ErickPetru哦,我明白,但您能告诉我执行此替换的好处吗?编辑如下句子:在主程序中,定义student1类型的学生变量和对象。将对象放置到变量并运行Student1的函数。再次编辑解释代码并建议更多阅读。他们要求:,定义Student1类型的学生变量和对象。执行对象到变量的放置并运行student1的函数。恐怕您的答案似乎不符合要求。@ErickPetru哦,我明白,但您能告诉我执行此替换的好处吗?编辑如下句子:在主程序中,定义student1类型的学生变量和对象。执行对象到变量的放置并运行Student1的函数。再次编辑解释代码并建议更多阅读。我不知道在主类中要做什么,我如何执行此放置,而且,我想知道这样做的好处是什么,如果到目前为止我有错误,请告诉我,非常感谢。你已经通过编译器运行了吗?它抱怨学生吗?平均水平?伙计们,问题的这部分在哪里在主程序中,定义student1类型的student变量和对象。将对象放置到变量并运行student1的函数。到目前为止一切都很好,但他们让我将对象放置到变量。我真的不知道在主类中要做什么,我如何执行此放置,而且,我想知道这样做的好处是什么,如果到目前为止我有错误,请告诉我,非常感谢。你已经通过编译器运行了吗?它抱怨学生吗?平均水平?伙计们,问题的这部分在哪里大体上
gram,定义student1类型的student变量和对象。执行对象到变量的放置并运行student1的函数。到目前为止一切都很好,但他们让我执行对象到变量的放置。我相信这是在教语法等基础知识。如果你是新手,我强烈建议,您需要花时间学习OOP的原则,尤其是继承与组合。祝你好运!我正在通过这本书学习,我已经学会了继承,有什么想法可以做吗?这个答案与所问的问题无关-这是一个具体的问题,不是一个关于如何实现功能的最佳建议的请求。我可能误解了最初的问题。我想他要求的更多,包括让我知道到目前为止我是否有错误。我很抱歉。我肯定它是在教语法等基础知识。如果你是新手,我强烈建议你花点时间学习面向对象编程的原理,尤其是继承与组合。祝你好运!我正在通过这本书学习,我已经学会了继承,有什么想法可以做吗?这个答案与所问的问题无关-这是一个具体的问题,不是一个关于如何实现功能的最佳建议的请求。我可能误解了最初的问题。我想他要求的更多,包括让我知道到目前为止我是否有错误。对不起,没错,你能告诉我这样做的目的是什么:将对象放置到变量中吗?顺便说一句,你能告诉我如果他们让我将变量放置到对象中,我该怎么做吗?我一点也不明白这个练习的目的-这不是一个面向对象设计的好例子-我的建议是更好的书!确切地你能告诉我这样做的目的是什么:将对象放置到变量中吗?顺便说一句,你能告诉我如果他们让我将变量放置到对象中,我该怎么做吗?我一点也不明白这个练习的目的-这不是一个面向对象设计的好例子-我的建议是更好的书!