0Pricing
C# Academy · 课时

多态和方法重写

掌握多态,通过方法重写创建灵活且可复用的代码

多态和方法重写 是 CoddyKit 上的免费 C# Academy 课时。 这是第 7 节课,共 7 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 C# Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 C# Academy 课程共包含 7 节课。

多态简介

多态与方法重写

欢迎来到下一课!在本课中,您将学习多态这一面向对象编程的核心概念,以及如何通过重写方法来编写灵活且可复用的代码。让我们开始吧!

多态和方法重写 — 插图 1

什么是多态?

什么是多态?

多态意味着“多种形式”,它允许将不同类的对象视为同一个基类的对象。这样可以让您的代码更加灵活并且易于复用。

示例:同一个方法可以根据其处理的对象类型而表现出不同的行为。

要点:在 C# 中,可以通过方法重写和接口实现多态。

理解方法重写

理解方法重写

方法重写允许派生类为基类中已经定义的方法提供特定的实现。在基类中使用 virtual 关键字,在派生类中使用 override 关键字。示例:

提示:无论对象的引用类型是什么,方法重写都能确保调用适用于该对象的正确方法。

using System;

class Animal {
    public virtual void Speak() {
        Console.WriteLine("The animal makes a sound.");
    }
}

class Dog : Animal {
    public override void Speak() {
        Console.WriteLine("The dog barks.");
    }
}

class Cat : Animal {
    public override void Speak() {
        Console.WriteLine("The cat meows.");
    }
}

class Program {
    static void Main() {
        Animal myDog = new Dog();
        Animal myCat = new Cat();

        myDog.Speak(); // Outputs: The dog barks.
        myCat.Speak(); // Outputs: The cat meows.
    }
}

使用多态

使用多态

多态允许您通过通用接口编写可处理不同类型对象的代码。示例:

要点:多态可以帮助您编写更加通用且易于复用的代码。

using System;

class Animal {
    public virtual void Speak() {
        Console.WriteLine("The animal makes a sound.");
    }
}

class Dog : Animal {
    public override void Speak() {
        Console.WriteLine("The dog barks.");
    }
}

class Cat : Animal {
    public override void Speak() {
        Console.WriteLine("The cat meows.");
    }
}

class Program {
    static void Main() {
        Animal[] animals = { new Dog(), new Cat() };

        foreach (Animal animal in animals) {
            animal.Speak(); // Calls the appropriate method for each object
        }
    }
}

结合重写使用基础关键字

结合重写使用基础关键字

base 关键字用于在重写的方法中调用基类的方法。示例:

提示:如果希望在重写的方法中保留基类的功能,请使用 base。

using System;

class Animal {
    public virtual void Speak() {
        Console.WriteLine("The animal makes a sound.");
    }
}

class Dog : Animal {
    public override void Speak() {
        base.Speak(); // Calls the base class method
        Console.WriteLine("The dog barks.");
    }
}

class Program {
    static void Main() {
        Dog myDog = new Dog();
        myDog.Speak(); // Outputs: The animal makes a sound. The dog barks.
    }
}

抽象类和方法

抽象类和方法

抽象类为派生类提供蓝图。抽象类可以包含抽象方法,这些方法必须在派生类中重写。示例:

要点:抽象方法要求派生类提供自己的实现。

using System;

abstract class Animal {
    public abstract void Speak(); // Abstract method
}

class Dog : Animal {
    public override void Speak() {
        Console.WriteLine("The dog barks.");
    }
}

class Program {
    static void Main() {
        Animal myDog = new Dog();
        myDog.Speak(); // Outputs: The dog barks.
    }
}

练习挑战

练习挑战

创建一个包含抽象方法 CalculateArea() 的抽象类 Shape。派生出 Rectangle 和 Circle 类,并实现 CalculateArea()。示例:

using System;

abstract class Shape {
    public abstract double CalculateArea();
}

class Rectangle : Shape {
    public double Width { get; set; }
    public double Height { get; set; }

    public override double CalculateArea() {
        return Width * Height;
    }
}

class Circle : Shape {
    public double Radius { get; set; }

    public override double CalculateArea() {
        return Math.PI * Radius * Radius;
    }
}

class Program {
    static void Main() {
        Shape rectangle = new Rectangle { Width = 4, Height = 5 };
        Shape circle = new Circle { Radius = 3 };

        Console.WriteLine("Rectangle Area: " + rectangle.CalculateArea());
        Console.WriteLine("Circle Area: " + circle.CalculateArea());
    }
}

多态最佳实践

多态最佳实践

以下是一些最佳实践:

  • 使用多态简化代码并避免重复。
  • 仅重写那些需要在派生类中实现特定行为的方法。
  • 使用抽象类和方法,为派生类提供共享的接口。

提示:多态可以让代码更易于扩展和维护。

太棒了!

太棒了!

恭喜您!您已经学会了如何使用多态和方法重写来编写灵活且可复用的代码。在下一课中,我们将学习如何使用接口来实现抽象并实现多种行为。让我们继续编写代码吧!

多态和方法重写 — 插图 10

常见问题解答

「多态和方法重写」课时是免费的吗?

是的 — 「多态和方法重写」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 C# Academy 课程的其余内容,请升级到 CoddyKit PRO。 C# Academy 课程共包含 7 节课。

「多态和方法重写」这节课中我会学到什么?

掌握多态,通过方法重写创建灵活且可复用的代码 你通过在浏览器中直接运行的动手代码来练习 C# Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 C# Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 C# Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 7 节课,共 7 节。

「多态和方法重写」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 C# Academy 课中编写并运行代码吗?

能。每节 C# Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 什么是面向对象编程?
  2. 定义类和对象
  3. 理解属性和方法
  4. C# 中的构造函数
  5. 封装和访问修饰符
  6. 继承:复用代码
  7. 多态和方法重写
← 返回 C# Academy