C# - 重写虚方法

项目目录:

创建教师类(Teacher),虚方法有Teach();

创建学生类(Student),重写的方法是Teach();

教师类:

  · 加上关键字 Virtual 就是声明可以重写此方法。

using System;

namespace Test_Console
{
    public class Teacher
    {
        public virtual void Teach()
        {
            Console.WriteLine("\t--> 教师类中的讲课方法,可以重写此方法,不重写可以直接调用!\n");
        }
    }
}

  

学生类:

  ·  public class Student : Teacher  继承教师类(Teacher),这样才能重写其中的虚方法。

  · 使用关键字 Override 重写继承类中的方法。

using System;

namespace Test_Console
{
    public class Student : Teacher
    {
        public override void Teach()
        {
            Console.WriteLine("\t -->我重写了Teacher类中的Teach方法, 一定先继承,后重写!\n");
        }
    }
}

  

调用:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Test_Console
{
    class Program
    {
        static void Main(string[] args)
        {
            Student student = new Student();
            Teacher teacher = new Teacher();

            Console.WriteLine("调用Teacher类中的Teach方法,该方法可重写:\n");
            teacher.Teach();

            Console.WriteLine("调用Student类中的Teach方法,该方法是重写了Teacher类中的Teach方法:\n");
            student.Teach();

            Console.ReadKey();
        }
    }
}

  

效果:

时间: 2024-10-14 18:39:24

C# - 重写虚方法的相关文章

重写虚方法,多态的使用

重写(override)特点:1.要有继承关系2.方法原型要一致(修饰符.返回类型.方法名.参数列表一致)3.加上override关键字,重写父类的方法(该父类方法要有virtual.abstract进行修饰) /// <summary>    /// 狗类(父类)    /// </summary>    class Dog    {        public string Name { get; set; }        public int Age { get; set;

通过重写虚方法实现加法运算

实现效果: 知识运用: 虚方法:允许被其子类重新定义的方法 声明时使用virtual修饰符 重写方法:使用相同的签名重写继承的虚方法  两者联系:虚方法主要用来引入新方法 而重写方法则使从基类继承而来的虚方法的专用化(其具体实现) 实现代码: /// <summary> /// 建立的虚方法可以在子类中被重写 /// </summary> class Operation { public virtual double operation(double d,double b) { r

C#继承,重写虚方法的使用笔记

一,如下例子 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace DemoTest { class Program { static void Main(string[] args) { B a = new B(); } } public class A { public A() { Say(); } protected virtual void Say()

多态、虚方法、重写

多态: 同样都是继承了同一个父类,但是父类中的方法并不使用任何一个子类,那么在这就需要子类重新编写这个方法的主体 1.需要父类同意子类可以重新编写自己的方法,virtual - 虚方法 2.子类只能重写父类允许重写的方法,只能重写虚方法,override - 重写覆盖虚方法 所有的类都可以当做父类,都可以有虚方法 Program   类 using System; using System.Collections.Generic; using System.Linq; using System.

C#虚方法和抽象方法区别

虚方法: 1.virtual方法表示此方法可以被重写, 也就是说这个方法具有多态.父类中的方法是通用方法,可以在子类中重写以重新规定方法逻辑.2.virtual方法可以直接使用,和普通方法一样.3.不是必须重写的. 子类可以使用base.方法 的方式调用, 无论有没有在子类使用override去重写.virtual关键字只是明确标示此方法可以被重写, 其实它和一般的方法没有什么区别相应的sealed关键字标示此方法不可以被重写 抽象方法: 1.抽象方法没有提供实现部分. 2.抽象方法只能在抽象类

虚方法

当类中的方法声明前加上了virtual   修饰符,我们称之为虚方法,反之为非虚.使用了virtual   修饰符后,不允许再有static,   abstract,   或override   修饰符.       示例1:带有虚方法的类       using   System   ;       public   class   DrawingBase       {       public   virtual   void   Draw(   )       {   Console.W

多态实现之--虚方法

多态实现共有三种途径,分别是:虚方法.抽象类.接口,本篇讲述第一种方法:虚方法. 1. 什么是虚方法?虚方法,从语法上来说是被virtual关键字修饰的方法,从含义上讲,这个方法在类被继承后可以在子类重写(override). 2. 在子类中重写虚方法需要注意哪些问题?首先说明的是,子类中的重写并不是必须的,因为父类中的虚方法本身也是有函数体的(除非是抽象方法),所以如果进行重写则会覆盖从父类中的虚方法,否则直接调用父类的该方法. 3. 是怎样体现多态的?在调用的时候子类只需要调用同一个方法,如

虚方法、抽象类

虚方法: 1.virtual方法表示此方法可以被重写, 也就是说这个方法具有多态.父类中的方法是通用方法,可以在子类中重写以重新规定方法逻辑. 2.virtual方法可以直接使用,和普通方法一样 3.不是必须重写的. 子类可以使用base.方法 的方式调用, 无论有没有在子类使用override去重写 virtual关键字只是明确标示此方法可以被重写, 其实它和一般的方法没有什么区别 相应的 sealed关键字标示此方法不可以被重写 虚方法和抽象方法的区别: 1.虚方法可以有实现体,抽象方法不能

抽象方法和虚方法 与设计模式

一.概念 抽象方法和虚方法是什么?先写一段代码看看他们俩的区别. 抽象方法使用abstract关键字:虚方法使用virtaul关键字. <span style="font-size:18px;">//抽象方法 Public abstract class TestPaper { Public abstract Answer(): } </span> <span style="font-size:18px;">//虚方法 Public