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() {
            Console.WriteLine("A");
        }
    }

    public class B : A
    {
        protected override void Say()
        {
            Console.Write("B");
        }
    }
}

结果:

输出的则是B

二,通过调试得出结论:

当B继承A时,并重写A中的方法,程序运行的时只会进入到B中重写的方法Say(),而不会进入A中的Say()

时间: 2024-10-13 15:33:38

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

【jq】c#零基础学习之路(3)继承和虚方法

c#只能继承一个基类和多个接口(0+) 父类:Human: class Human { public virtual Move() { Console.WriteLine("Human的虚方法"); } public viod Play() { Console.WriteLine("Human的Play方法"); } } 子类:Chinese: class Chinese:Human { public override void Move() { Console.W

C# - 重写虚方法

项目目录: 创建教师类(Teacher),虚方法有Teach(); 创建学生类(Student),重写的方法是Teach(); 教师类: · 加上关键字 Virtual 就是声明可以重写此方法. using System; namespace Test_Console { public class Teacher { public virtual void Teach() { Console.WriteLine("\t--> 教师类中的讲课方法,可以重写此方法,不重写可以直接调用!\n&q

虚方法与重写方法的使用

C#中的多态性在实现时主要是通过在子类(派生类)中重写基类的虚方法或函数成员来实现的,那么这里就遇到两个概念,一个是虚方法,另一个是重写方法,而这两个方法也是多态中最重要的两个概念,下面分别对它们进行讲解. 1.虚方法 虚方法就是允许被其子类重新定义的方法,在声明时,需要使用virtual修饰符. 注意: (1)virtual修饰符不能与static.abstract或者override修饰符同时使用: (2)由于虚方法不能是私有的,所以,virtual修饰符不能与private修饰符同时使用.

多态、虚方法、重写

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

虚方法

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

虚方法、抽象类

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

aspx里构造函数里无法使用session,需要重写一个方法放在load里面就能正常使用session了

1.构造一个函数,继承System.Web.UI.Page /// <summary> /// Brand的构造函数 /// </summary> public class CBrandBaseBage : System.Web.UI.Page { protected string BrandId; public CBrandBaseBage() { //ShowPage(); showpage给子类用,如果子类用session[""]=""