C#之多态

简介: C#之多态

多态是什么?


多态就是对象可以表现多个类型的能力。


问题1


当我们在写代码的时候,如果子类和父类如果有相同的方法名,但会出现一条绿线。


解决方法:1、可以在子类方法的修饰符后面加new。2、以可在父类的方法的修饰符后面加virtual(称为虚方法)


用virtual修饰的方法称为虚方法,虚方法可以在子类中通过override关键字重写。常见的虚方法:ToString()Equals


a73a762351066130b37a9e76c5e6aba2_2020120609205987.png


然后在子类中重写父类的方法,加override,调用父类的方法,但是把父类的方法进行重写了,更换了方法里面的内容(称为重写)


什么是重写?


不同对象对于同一个方法调用的不同行为(指不同对象收到相同消息时,会产生不同行为)。


4571cbab905238607fdf7e332a53306d_20201206092905840.png


虚方法与重写


1、方法不能用static修饰  2、方法重写与基类的签名必须一致  3、virtual不能与private一起使用


抽象方法


抽象方法是用abstract修饰,抽象方法没有方法体,抽象方法必须在抽象类中,抽象类无法实例化。父类是抽象类,子类继承了这个抽象类,必须把抽象类中的抽象方法重写。


虚方法和抽象类比较


37ede2e7fb7f54894951c5feb3e5498a_watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTMwOTE1NQ==,size_16,color_FFFFFF,t_70.png


多态总结:


建立多态的方式:覅类实现多态、抽象类实现多态、接口实现多态


版本控制:保留基类方法使用new关键字、需要重写方法时使用override


类与成员的修饰符:


类:public、internal、abstract、sealed、static


成员(方法):public、private、protected、internal


protected internal


abstract、virtual、new、override


static


以上是我对多态的认识,如果有不足的地方,欢迎给位大佬指正!


相关文章
|
2月前
|
编译器 C#
C#多态概述:通过继承实现的不同对象调用相同的方法,表现出不同的行为
C#多态概述:通过继承实现的不同对象调用相同的方法,表现出不同的行为
124 65
|
3月前
|
安全 C#
C# 面向对象编程的三大支柱:封装、继承与多态
【9月更文挑战第17天】在C#中,面向对象编程的三大支柱——封装、继承与多态,对于编写安全、可维护、可复用的代码至关重要。封装通过访问修饰符和属性保护数据;继承允许子类继承父类的属性和方法,实现代码复用和多态;多态则提高了代码的灵活性和通用性。掌握这三大概念能显著提升C#编程能力,优化开发效率和代码质量。
|
程序员 C#
C# 类实现接口(Interface) 多态 多继承
C# 类实现接口(Interface) 多态 多继承
【C#本质论 八】类-从设计的角度去认知(多态)
【C#本质论 八】类-从设计的角度去认知(多态)
68 0
|
C# 索引
【C#】【平时作业】习题-7-继承、抽象与多态
【C#】【平时作业】习题-7-继承、抽象与多态
144 0
【C#】【平时作业】习题-7-继承、抽象与多态
|
C#
30天C#基础巩固-----多态,工厂模式
30天C#基础巩固-----多态,工厂模式
126 0
30天C#基础巩固-----多态,工厂模式
|
存储 数据可视化 安全
☀️ 学会编程入门必备 C# 最基础知识介绍(五)——方法、封装、继承、多态
前言👻 方法❄️ C# 中定义方法 实例 C# 中调用方法 递归方法调用 参数传递 按值传递参数 按引用传递参数 按输出传递参数 C# 封装⛄️ Public 访问修饰符 Private 访问修饰符 Protected 访问修饰符 Internal 访问修饰符 Protected Internal 访问修饰符 C# 继承⚡️ 基类和派生类 基类的初始化 C# 多重继承 C# 多态性🎄 静态多态性 函数重载 C# 运算符重载 运算符重载的实现 可重载和不可重载运算符 动态多态性 总结💬
☀️ 学会编程入门必备 C# 最基础知识介绍(五)——方法、封装、继承、多态
|
程序员 C#
C# 继承和多态
继承 继承是面向对象程序设计中最重要的概念之一。继承允许我们根据一个类来定义另一个类,这使得创建和维护应用程序变得更容易。同时也有利于重用代码和节省开发时间。 当创建一个类时,程序员不需要完全重新编写新的数据成员和成员函数,只需要设计一个新的类,继承了已有的类的成员即可。这个已有的类被称为的基类,这个新的类被称为派生类。
147 0
|
C# C++
C# 中多态和重载的区别
一、多态性意味着有多重形式。 在面向对象编程范式中,多态性往往表现为"一个接口,多个功能"。   1 using System; 2 using System.Collections.Generic; 3 using System.
1666 0