C#关键字-修饰词abstract、virtual的区别

修饰词abstract和virtual的最明显区别是什么?

abstract 抽象方法,一个方法的前面加了修饰词abstract,表示其方法还没被实践,

而后继承的衍生类(子类)的方法前加上修饰词override来实践父类所声明的抽象方法。

当一个方法被声明为?abstract 时,其类也要一并声明成?abstract。

using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            Toyata86 Toyata86 = new Toyata86();
            Toyata86.description = "Drift King";
            Toyata86.CarData();
            Console.ReadKey();
        }
    }

    interface ICar
    {
        void CarData();
    }

    abstract class CarToyata : ICar
    {
        public abstract void CarData();
        public string description { get; set; }
    }

    class Toyata86 : CarToyata
    {
        public override void CarData()
        {
            Console.WriteLine("Car Weight is 1280 kg");
            Console.WriteLine("Car length is 4240 mm");
            Console.WriteLine("Car width is 1775 mm");
            Console.WriteLine("Car height is 1320 mm");
        }
    }
}

virtual 虚拟方法,一个方法的前面加了修饰词virtual,表示方法除了自己有实践之外,

还可以被子类底下以override或new修饰词的方法覆写。

参考数据:

[C#] 区分 abstract、virtual、override 和 new

修饰词 (C# 参考)

virtual (C# 参考)

原文:大专栏  C#关键字-修饰词abstract、virtual的区别

原文地址:https://www.cnblogs.com/petewell/p/11509969.html

时间: 2024-10-07 16:00:51

C#关键字-修饰词abstract、virtual的区别的相关文章

Java基础知识笔记(一:修饰词、向量、哈希表)

一.Java语言的特点(养成经常查看Java在线帮助文档的习惯) (1)简单性:Java语言是在C和C++计算机语言的基础上进行简化和改进的一种新型计算机语言.它去掉了C和C++最难正确应用的指针和最难理解的多重继承技术等内容,通过垃圾回收机制简化了程序内存管理,统一了各种数据类型在不同操作系统平台上所占用的内存大小. (2)网络特性:Java语言是目前对网络支持最全面,与网络关系最密切的计算机语言之一. (3)面向对象:由于Java语言是一种新型计算机语言,没有兼容过程式计算机语言的负担,因此

属性 与成员变量的 区别与联系 及属性修饰词理解

成员变量和属性的区别与联系在于: 成员变量是一个“内”概念,反映的是类的结构构成.属性是一个“外”概念,反映的是类的逻辑意义. 成员变量没有读写权限控制,而属性可以指定为只读或只写,或可读可写. 成员变量不对读出作任何后处理,不对写入作任何预处理,而属性则可以. public成员变量可以视为一个可读可写.没有任何预处理或后处理的属性. 而private成员变量由于外部不可见,与属性“外”的特性不相符,所以不能视为属性. 虽然大多数情况下,属性会由某个或某些成员变量来表示,但属性与成员变量没有必然

Java线程和Java修饰词

META标签 用来描述一个HTML网页文档的属性. 含义:元素可提供相关页面的元信息. <meta> 元素可提供有关页面的元信息(meta-information),比如针对搜索引擎和更新频度的描述和关键词. <meta> 标签位于文档的头部,不包含任何内容.<meta> 标签的属性定义了与文档相关联的名称/值对. meta是html语言head区的一个辅助性标签.几乎所有的网页里,我们可以看到类似下面这段的html代码: <head> <meta h

Chapter6_访问权限控制_访问权限修饰词

Java中有四种访问权限,public,private,protected和包访问权限,它们是置于类中每一个成员之前的定义,无论是一个域还是一个方法,下面一一介绍. 一.包访问权限 如果不提供任何访问权限修饰词,这意味着是包访问权限.即当前包中的所有其他类对那个包访问权限的成员都有访问权限,但对于这个包之外的所有类,这个类是private的,所以处于一个编译单元中的所有类之间,都是可以互相访问的.包访问权限允许将包内所有的类组合起来,以便于它们之间可以轻松地相互访问.总的来说,取得对某成员的访问

大钟的ios开发之旅(2)————简单说说ios中ARC与非ARC模式下的property的变量修饰词

/******************************************************************************************** * author:[email protected]大钟 * E-mail:[email protected] *site:http://www.idealpwr.com/ *深圳市动力思维科技发展有限公司 * http://blog.csdn.net/conowen * 注:本文为原创,仅作为学习交流使用,转

【java编程思想--学习笔记(二)】访问控制-Java访问权限修饰词

如果不提供任何访问修饰词,则意味着它是"包访问权限". 2.1 包访问权限 包访问权限赋予包内的类相互访问彼此成员的权限. 应该说, 包访问权限为将类群聚在一起的行为提供了意义和理由,即建立包的目的不仅仅是为了分类和区分,更是为了是同一个包内的类可以拥有彼此的代码. 取得对某一成员访问权的途径: 1)该成员的访问修饰词为public. 2)通过不加访问权限修饰词并将目标类放在同一包内的方式. 3)继承.子类可以访问父类的public和protected修饰词的成员,但只有在父子类处于同

Django ORM常用的函数以及修饰词

函数名称或修饰词 说明 filter() 返回符合指定条件的QuerySet exclude() 返回不符合指定条件的QuerySet ordey_by() 串接到QuerySet之后,针对某一指定的字段进行排序 all() 返回所有的QuerySet get() 获取指定符合条件的唯一元素,如果找不到或有一个以上符合条件,都会产生exception first()/last() 获取第1个和最后一个元素 aggregate() 可以用来计算数据项的聚合函数 exists() 用来检查是否存在某

extern static const abstract virtual

extern static const abstract virtual const const,常量,初始化过后值不能再变化的变量. extern static const abstract virtual,布布扣,bubuko.com

关于 Java正则表达式中的Possessive数量修饰词的理解

关于 Java正则表达式中的Possessive数量修饰词的理解 正则表达式对于数量限定符如 ?, + , *, {n, m} 的匹配默认是贪婪模式,比如: a.*b   匹配 acbab 的结果是 acbab 而不是acb 正则表达式支持懒惰模式,也就是在数量限定符后加一个数量修饰词(quantifier),用问号表示, 比如: a.*?b 匹配 acbab 的结果是 acb 而不是acbab 而Java语言在正则表达式中支持一种Possessive 数量修饰词 ,用加号表示.其字面意思是像贪