【问题标题】:Classes and Abtract methods [duplicate]类和抽象方法
【发布时间】:2021-04-14 17:52:47
【问题描述】:

所以我在这里有这个简单的代码,我试图理解这些,但我最终会遇到很多错误等。我需要做的主要事情是用 Hello 抽象方法声明一个 Person 类,然后声明一个派生自的 StudentPerson 类并覆盖其 Hello 方法。

下面是代码:

public class Person{
  public abstract void Hello();
}
  class Student: Person {
    public override void Hello() {
 Console.Write("Hello there");
}}

【问题讨论】:

  • "但我最终会遇到很多错误" 你能显示错误信息吗?
  • main.cs(11,26): error CS0513: Person.Hello()' is abstract but it is declared in the non-abstract class Person' main.cs(10,14): (与先前错误相关的符号位置)这些是错误。我在 onlinegdb 上运行它们

标签: c# inheritance polymorphism abstraction


【解决方案1】:

编译器错误 CS0513

'function' 是抽象的,但它包含在非抽象类中。 方法不能是非抽象类的抽象成员。

键是方法不能是非抽象类的抽象成员

您需要将Person 类设为抽象类

public abstract class Person
{
    public abstract void Hello();
}

【讨论】:

  • 那我应该换什么?
  • @StellarisGhost 你不会替换任何东西。 Fabio 已经给了你答案……用 abstract 关键字标记你的 Person 类。之后你的代码就可以正常编译了。
  • 我标记了 person 类,但它显示 1 个错误。错误 CS5001:Program a.out' does not contain a static Main' 方法适用于入口点,所以我需要声明 Main 方法吗?
  • 另外,谢谢你们的帮助,你们。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多