网站首页 > 基础教程 正文
面向对象的三大特征:封装,继承,多态;实现多态的三种方式为虚方法,抽象方法与接口
23种设计模式不知道有没有不知道的,比如单例模式,工厂模式,观察者模式等等,基本都是由多态实现的;多态说通俗点就是多种表现形态听起来比较抽象看实例
下面例子中,里面有刚刚学过的继承及其继承中的构造方法与其base的用法,之前说过不再赘述;比如Say()方法,如果父类与子类都有此方法,实现多态的第一种方式就是使用虚方法,具体用法就是声明时使用父类实例化子类对象,通过重写子类方法实现多态
在父类中的方法必须加上virtual关键字,表示这个方法可以被子类进行重写
在子类中的方法加上override关键字,表示这个方法对父类方法进行重写,如果不想重写父类的方法,将override换成new关键字,图中都有标示
在使用时,使用父类实例化子类对象,主要作用就是为外界提供统一的访问接口,隐藏内部的实现过程,不论内部如何变化,外部访问始终如一,等以后学习到工厂模式后就能体会到其便利
由上图可知,通过首先使用父类实例化子类对象,然后通过统一的对象调用方法,实现不同形态的展示同时实现代码重用,省略很多过程,显得干巴巴的......只需记得使用虚方法的方式是将父类的方法使用virtual标记,如果子类进行重写使用override标记,如果不想重写使用new标记,通过父类实例化子类,使用统一的父类调用其方法实现子类的不同展现形态
猜你喜欢
- 2024-12-28 CSnakes:在.NET项目中嵌入Python代码的工具
- 2024-12-28 巧用泛型设计模式,提升代码质量新高度
- 2024-12-28 巅峰对决!Spring Boot VS .NET 6 巅峰对决之干碎龙王短剧全集完整版第5集
- 2024-12-28 基于C#开发的物联网设备通讯协议客户端终身开源免费
- 2024-12-28 C# Flurl 库浅析(一) c#folderbrowserdialog
- 2024-12-28 C# Lazy的缺点 c#的介绍
- 2024-12-28 微服务——webapi实现,脱离iis,脱离tomcat
- 2024-12-28 231.C# 跨平台服务开发 c++跨平台开发
- 2024-12-28 C# 和 .NET 开发的 10 种基本模式
- 2024-12-28 基于C# 开发的物联网设备通讯协议客户端
- 05-24php实现三方支付的方法有哪些?
- 05-24CosmicSting 漏洞影响 75% 的 Adobe Commerce 和 Magento 网站
- 05-24Java接口默认方法的奇妙用途
- 05-24抽象类和接口
- 05-24详解Java抽象类和接口
- 05-24拒绝接口裸奔!开放API接口签名验证
- 05-24每天学Java!Java中的接口有什么作用
- 05-24Java:在Java中使用私有接口方法
- 最近发表
- 标签列表
-
- jsp (69)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- dockercp (63)
- gitclone命令 (63)
- dockersave (62)
- linux命令大全 (65)
- pythonif (86)
- location.href (69)
- dockerexec (65)
- tail-f (79)
- deletesql (62)
- c++模板 (62)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- console.table (62)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)