C# 面向对象之多态

由于子类继承类父类,那么子类就拥有相同的行为,但子类的行为有时需要相互区别

子类就需要覆写父类的方法来实现子类特有的行为,这样的技术在c#中就叫做多态。

多态就是相同类型的对象调用相同的方法却表现出不同的现象

使用virtual和override关键字实现重写方法

只有基类成员声明为virtual和abstract时才能被派生类重写

而如果子类想改变虚方法的实现行为,则必须使用override关键字

最后执行结果为:

但是这样的代码存在一个问题

就是

Animal animal=new Animal ();

这个样的话毫无意义,因为这里的基类是为子类提供公共成员

那么我们可以将基类创建为抽象类利用abstract关键字就可以防止这种情况发生。

阻止派生类重写虚成员


利用sealed关键字来实现

如果在有个类来继承Horse并试图重写Voice方法就会收到错误信息

使用新成员隐藏基类成员

利用new关键字来实现

时间: 2024-11-08 07:56:23

C# 面向对象之多态的相关文章

面向对象编程 多态

面向对象编程 -多态 对象的多态性是指在父类中定义的属性或行为被子类继承之后,可以具有不同的数据类型或表现出不同的行为.这使得同一个属性或行为在父类及其各个子类中具有不同的语义. 多态这个概念,在 Java 中指的是变量可以指向的对象的类型,可是变量声明类型的子类.对象一旦创建,它的类型是不变的,多态的是变量. 在 PHP5 中,变量的类型是不确定的,一个变量可以指向任何类型的数值.字符串.对象.资源等.我们无法说 PHP5 中多态的是变量. 我们只能说在 PHP5 中,多态应用在方法参数的类型

面向对象之多态

面向对象之多态: 由于子类重写父类方法,然后用父类引用指向子类对象,调用方法时候会进行动态绑定,这就是多态 面向对象编程之接口: 接口(interface)是抽象方法和静态常量定义的集合. 接口是一种特殊的抽象类,这种抽象类中只包含抽象方法和静态常量. 接口中没有其它类型的内容 接口的定义 interface 接口名{ public getName(); public setName($name);}在接口中的抽象方法只能是 public 的,默认也是 public 权限.并且不能设置成 pri

黑马程序员——Java基础---面向对象之多态

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流!                                                                     面向对象之多态 一:多态的概念  多态性在实际中的含义就是不同的对象有相同的一般轮廓或形态,但具体执行的过程却大相径庭

Python_day8_面向对象(多态、成员修饰符、类中特殊方法、对象边缘知识)、异常处理之篇

一.面向对象之多态 1.多态:简而言子就是多种形态或多种类型 python中不支持多态也用不到多态,多态的概念是应用与java/C#中指定传参的数据类型, java多态传参:必须是传参数的数据类型或传参的子类类型 面向对象总结: 面向对象是一种编程方式,此编程方式的实现是基于类和对象的使用 类:是一个模板,模板中包含了多个函数共使用,即类中可包含多个函数(类中的函数即叫做方法) 一般疑问: 1)什么样的代码才是面向对象? 简单来说,如果程序中的所有功能否是由 “类”和“对象”实现,那么就是面向对

go面向对象之多态即接口(interface)

1.go语言的多态是用接口来实现的interface package main import "fmt" //面向对象的多态是通过接口interface来实现的,不同的对象,调用相同的接口,实现不同的效果 //go语言中,接口interface是一个自定义类型,描述了一系列方法的集合,关键字interface //接口不能被实例化 //定义接口的方法 //type 接口名字 interface { // //} //接口的名字一般以er结尾 //定义一个Personer的接口 type

python 30 面向对象之 多态

目录 1,mixins机制 2,子类派生的新方法中重用父类的功能 3, 面向对象之--多态 4,一些内置函数的介绍 1,mixins机制 多继承的正确打开方式:mixins机制 mixins机制核心:就是在多继承背景下尽可能地提升多继承的可读性 ps:让多继承满足人的思维习惯=>什么"是"什么 使用Mixin类实现多重继承要非常小心 首先它必须表示某一种功能,而不是某个物品,python 对于mixin类的命名方式一般以 Mixin, able, ible 为后缀 其次它必须责任

面向对象之多态的三种方式

多态是面向对象最重要的特征之一,它能使得单一的类变得更多种类.简单来说多态主要有三种形式,分别是虚方法.接口和抽象类,三者各有特点,下面是代码对他们的描述: 1 class Program 2 { 3 static void Main(string[] args) 4 { 5 //1.virtual method 6 Chinese ch1 = new Chinese("周润发"); 7 Chinese ch2 = new Chinese("刘德华"); 8 Ame

重新认识java(五) ---- 面向对象之多态(向上转型与向下转型)

多态,大概每个人都知道.但是,又有几个人真的理解什么是多态.多态有哪些细节呢?如果你看到这篇文章的名字,脑海中对多态没有一个清晰的概念,不妨点进来看看,也许会有收获. 什么是多态 简单的理解多态 多态,简而言之就是同一个行为具有多个不同表现形式或形态的能力.比如说,有一杯水,我不知道它是温的.冰的还是烫的,但是我一摸我就知道了.我摸水杯这个动作,对于不同温度的水,就会得到不同的结果.这就是多态. 那么,java中是怎么体现多态呢?我们来直接看代码: public class Water { pu

对面向对象中多态的理解

原文:http://www.cnblogs.com/xrq730/p/4820237.html 概述 我们都知道面向对象有四个基本特性:抽象.封装.继承.多态.这四个特性,概括起来可以这么理解,抽象.封装.继承是多态的基础,多态是抽象.封装.继承的表现.多态,是Java中非常重要的一个部分,所以今天来谈一下多态(Polymorphism). 什么是多态 不同类的对象对同一消息作出不同的响应就叫做多态.就像上课铃响了,上体育课的学生跑到操场上站好,上语文课的学生在教室里坐好一样. 多态的作用 简单

Java面向对象的多态

Java中多态的概念是面向对象中除封装和继承外非常重要的知识点,也是Java面向对象三大特性最后一个特性 多态其实就是指对象存在的多种形态,多态分为引用多态和方法多态 引用多态的含义就是:父类的引用可以指向它本类的对象,不仅如此父类的引用还可以指向子类的对象,这就是引用多态 用简单的代码来看一下引用多态的含义: 动物类:Animal 1 public class Animal { 2 public Animal(){ 3 System.out.println("Animal类的构造方法被执行&q