C#中抽象方法与虚方法的区别详解及示例
C 中抽象方法与虚方法的区别
先说两者最大的区别:抽象方法是需要子类去实现的。虚方法是已经实现了的,可以被子类覆盖,也可以不覆盖,取决于需求。因为抽象类无法实例化,所以抽象方法没有办法被调用,也就是说抽象方法永远不可能被实现。
如果需要了解虚方法及抽象方法具体的定义和语句,请移步:C#多态性学习,虚方法、抽象方法、接口等用法详解。
我们具体看个例子来帮助理解,首先是虚方法:
(资料图片)
public class Shape{ public virtual double CalculateArea() { return 0; }}public class Circle : Shape{ public double Radius { get; set; } public override double CalculateArea() { return Math.PI * Radius * Radius; }}public class Square : Shape{ public double SideLength { get; set; } public override double CalculateArea() { return SideLength * SideLength; }}
在这个例子中,Shape类定义了一个虚方法CalculateArea(),它返回0。Circle和Square类分别继承Shape类并重写了该方法,实现了自己的计算面积的方法。
抽象方法:
public abstract class Shape{ public abstract double CalculateArea();}public class Circle : Shape{ public double Radius { get; set; } public override double CalculateArea() { return Math.PI * Radius * Radius; }}public class Square : Shape{ public double SideLength { get; set; } public override double CalculateArea() { return SideLength * SideLength; }}
在这个例子中,Shape类定义了一个抽象方法CalculateArea(),因为它是一个抽象方法,所以没有提供实现。Circle和Square类继承Shape类并强制实现了该方法。 抽象类是无法被实例化的,但是它可以作为父类被继承。抽象类中可以定义抽象方法,子类必须实现这些抽象方法。这种方式也称为“强制静态绑定”。
总结:
虚方法和抽象方法都是实现多态性的方式,但它们有以下几点不同:
1.实现方式不同:虚方法是在父类中声明方法并使用virtual关键字标识,子类可以使用override关键字对该方法进行重写并实现自己的行为;而抽象方法是在父类中声明方法并使用abstract关键字标识,子类必须实现这些抽象方法。抽象方法只能在抽象类中声明,虚方法不是。如果类包含抽象方法,那么该类也是抽象的,也必须声明类是抽象的。
2.是否需要实现:虚方法可以有默认的实现,而抽象方法必须由子类进行实现。如果一个子类没有实现其父类中定义的所有抽象方法,则子类必须被声明为抽象类。
3.类型限制:使用虚方法实现多态性时,代码会被解释为运行时代码,程序需要查找对象类型以确定调用的方法。使用抽象方法时,代码会被解释为静态代码,编译器会强制实现所有抽象方法。
4.设计用途:虚方法适用于有默认实现的情况,且子类可能需要更改其行为的情况,例如重构代码时需要改变方法的实现。抽象方法适用于接口定义和强制子类实现该类的一些操作的情况。
总的来说,虚方法和抽象方法是实现多态性的两种不同方式,具体使用哪一种方式取决于代码的设计需要。虚方法允许子类通过重写方法实现自己的行为,而抽象方法通常用于定义接口和限制子类的操作。
关键词:
C 中抽象方法与虚方法的区别
1、完全自创攻略~~~!1 游戏开始啦,先不要点箭头,点一下人+问号,里头有个信封点一下,你就获得啦!2 全部的菜?需要
从多家券商数字金融部获悉,自2020年8月,证监会关于《证券公司租用第三方网络平台开展证券业务活动管理规定(试行)》公开征求意见以来,时隔3
3月27日,央行降准正式实施。中国人民银行此前公告,为推动经济实现质的有效提升和量的合理增长,打好宏观政策组合拳,提高服务实体经济水平,
3月27日消息,光大银行今日召开2022年度业绩发布会。对于零售业务,光大银行副行长齐晔表示,光大银行成立了零售业务中台部,虽是二级部,但此
1、宫颈刮宫术是用一个小木刮刀,轻轻刮宫颈一周,然后均匀涂在载玻片上,观察宫颈的脱落细胞。2、宫颈刮取细胞数量不全面,制
中国网旅游3月27日电2023山东省旅游发展大会于3月26-27日在青岛举行,文化和旅游部“十四五”规划专家委员会委员
截至2023年3月24日收盘,神州泰岳(300002)报收于8 46元,上涨6 55%,换手率11 56%,成交量207 72万手,成交额17 3亿元。
“线上教师研修,让我们乡村教师不受时空限制,时时处处能学,受益匪浅。”前段时间,安徽省利辛县张村学区中心学校校长江威参加了国家智慧教
今天小编肥嘟来为大家解答以上的问题。recycled是什么面料,recycled相信很多小伙伴还不知道,现在让我们一起来看看吧!1、查一下病毒,如果没
1、你应该在控制面板的用户帐户里,给你正在使用的这个用户帐户设置好密码,然后才能使用屏幕保护程序的密码。2、或者假如你想
1、还不错,很好的帮助你复习领航的老师如:张俊芳,徐之明,雷雨等都是响当当的名师。2、另外其英语和数学的老师也都是正规的
“朋友圈”又扩大!金普“跨域通办”再添“新朋友”
3月26日早晨9点45分,一架深航班机满载旅客由深圳宝安国际机场腾空而起,飞往台北桃园国际机场。同日下午16时45分,中华航空CI527航班计划于台
天津北方网讯:为加快实现全国先进制造研发基地功能定位,深入推动制造业高质量发展,促进石化化工产业持续健康发展,本市近日出台石化化工产
梦幻西游强壮是可以提升气血上限的。每学习1级可提高15点气血上限,技能上限40级,并且受到强身影响。如强身120级,则每学1级强壮气血上限就提
里夫斯直言打球是为了赚钱!4年5076万不够?大将军炮轰他被高估,湖人,里夫斯,nba,lbj,阿里纳斯,吉尔伯特,美国篮球,布莱恩特·里维斯
一空调除湿一般把温度设置在比室温低4度时最合适二使用空调的除湿模式时要注意,如果室外温度很高而空气很干燥的话,就不要长时间开空调,除湿
1、特种教师叶皇没有完结。以上就是【特种教师txt下载完本,特种教师txt下载】相关内容。
1、《失恋33天》是由刘恺执导,姚笛、张默、张博、沈佳妮等人领衔主演的爱情剧。2、该剧讲述在上海一家婚庆公司工作的25岁女孩黄小仙遭遇了爱
1、因为江苏省的高考总分最低,所以录取分数线也是最低的。2、江苏省的高考总分为480分,而全国绝大部分省份的高考总分为750分。3、艺术生没有
1、「潜龙勿用。2、」何谓也?龙德而隐者也。3、不易乎世,不成乎名;遯世而无闷,不见是而无闷;乐则行之,忧则违之;确乎其
(记者闫晓虹)记者25日获悉,中国国际时装周2023秋冬开幕式·2023全球首发节在北京751D·PARK举办,由此拉开中国国际时装周大幕。2023秋冬中国
1、首先我们打开【设置】,向下拉点开【快捷指令】设置。2、正常情况下我们只需要勾选【允许不受信任的快捷指令】即可使用了。如果我们的这个
1、培元通脑胶囊对缺血性脑血管病或脑血管病恢复期有很好的疗效。2、它是一种中成药,由何首乌、熟地黄、天冬、鹿茸等制成。3
Copyright 2015-2022 热讯酒业网 版权所有 备案号:豫ICP备20005723号-6 联系邮箱:29 59 11 57 8@qq.com