C#中实现多态的三种方式:抽象类,虚方法,接口
Virtual方法(虚方法):可以在继承类里 Override覆盖重新的方方法,有自己的方法体。派生类可使用,可重写。
Abstract(抽象方法):只能在抽象类种修饰,并且没有具体的实现,抽象方法在派生类种 使用Override重写。
using System;
using System.Collections;//抽象类
public abstract class Animal
{protected string face;//声明为protected的构造函数,在实例化派生类时,基类可以执行初始化工作protected Animal() { this.face = "^_^"; /*抽象类构造函数初始化的例子*/}public abstract void eat();public abstract string Face{get;}
}public class dog : Animal
{//重写基类中的抽象访问器Facepublic override string Face{get{return face;}}//重写基类中的抽象方法eatpublic override void eat() { Console.WriteLine("狗吃骨头 " + Face);}
}public class cat : Animal
{public override string Face{get{return face;}}public override void eat(){Console.WriteLine("猫吃鱼 " + Face);}
}public class panda : Animal
{public override string Face{get{return face;}}public override void eat(){Console.WriteLine("熊猫吃竹子 " + Face);}
}public class MainFun
{static void Main(){Animal[] anim = new Animal[3];anim[0] = new dog();anim[1] = new cat();anim[2] = new panda();anim[0].eat();anim[1].eat();anim[2].eat();Console.ReadKey();}
}
为什么要用接口,接口有什么用?
C#中实现多态的三种方式:抽象类,虚方法,接口相关推荐
- Django中Model继承的三种方式
Django中Model继承的三种方式 Django中Model的继承有三种: 1.抽象继承 2.多表继承 3.proxy model(代理model) 1.抽象继承 第一种抽象继承,创建一个通用父类 ...
- android获取自定义属性,android 自定义控件中获取属性的三种方式(转)
第一种方法,直接设置属性值,通过attrs.getAttributeResourceValue拿到这个属性值. (1)在xml文件中设置属性值 android:layout_width="f ...
- UE4学习-在虚幻编辑器中打开VS的三种方式
文章目录 方式一 方式二 方式三 在虚幻编辑器中打开VS的三种方式 方式一 在文件浏览器这里,选择C++类,然后在文件夹内,找到一个和截图中类似的图标,双击,即打开vs,并在vs中打开这个类的代码. ...
- java中实现多线程的三种方式
java中实现多线程的三种方式 1.实现多线程的方法: 在java中实现多线程的两途径:继承Thread类,实现Runable接口(Callable) 2.继承Thread类实现多线程: 继承类T ...
- java类初始数组_java中数组初始化的三种方式是什么
java中数组初始化的三种方式是:1.静态初始化,如[int a[] = {2, 0, 1, 9, 2020}]:2.动态初始化,如[int[] c = new int[4]]:3.默认初始化,如[i ...
- 【查看linux中所有用户的三种方式】
查看linux中所有用户的三种方式学习目标: 提示:通过使用 /etc/passwd 文件,getent 命令,compgen 命令这三种方法查看系统中用户的信息 用户信息存放位置: 提示:Linux ...
- java中Map遍历的三种方式
Java中Map遍历的三种方式 前言 一:在for循环中使用entries实现Map的遍历: 二:在for循环中遍历key或者values,一般适用于只需要map中的key或者value时使用,在性能 ...
- c .net ajax,Asp.net mvc 2中使用Ajax的三种方式
在Asp.net MVC中,我们能非常方便的使用Ajax.这篇文章将介绍三种Ajax使用的方式,分别为原始的Ajax调用.Jquery.Ajax Helper.分别采用这三种方式结合asp.net m ...
- JavaScript概述和HTML中嵌入JavaScript的三种方式
"成功没有捷径,脚踏实地一步一个脚印,该来的总会来,不好高骛远,不急功近利,付出总会有回报,不管处于哪个阶段,都要一步一个脚印,踏实的走好每一步!" 目录 01.JavaScrip ...
最新文章
- 单调栈 or 线段树扫描线 ---- E. Delete a Segment [单调栈+二分] [扫描线处理空白位置的技巧乘2]
- 巧用Mono.Cecil反射加载类型和方法信息
- 爱的世界很拥挤,写在读《爱,就这么简单》之后
- 数据结构(2) -- 线性表的顺序表示
- Redis----windows下的常用命令
- mongodb 查询内嵌文档
- 还要做手机?罗永浩称还完债就重返科技行业
- C语言十五位正整数相加,二个超长正整数的相加
- HDU 1074 Doing Homework 状态压缩 + 搜索
- send tcp char far_wemos D1 arduino项目实战1-TCP协议连接Tlink平台③
- ScriptX打印控件的使用
- flume学习(九):使用Morphline Interceptor
- vue图片裁剪功能的实现
- 【无标题】申请测绘资质的详细流程及所需详细资料有哪些?
- PowerShell_零基础自学课程_1_初识PowerShell
- vscode怎么对选定的代码格式化?ctrl+k,ctrl+f(格式化代码)
- 数据安全--12--隐私保护浅析
- python爬虫文件下载很慢卡住线程_python爬虫多线程假死怎么解决?
- 模拟摄像头CCD板机揭秘
- 直击|为防虚假信息 百合佳缘引入第三方征信查询合作