热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

C#(八)基础篇—继承和多态

C#本随笔为个人复习巩固知识用,多从书上总结与python基础教程理解归纳得来,如有错误烦请指正面向对象的三大基本特征:封装、继承、多态

C#
本随笔为个人复习巩固知识用,多从书上总结与python基础教程
理解归纳得来,如有错误烦请指正

面向对象的三大基本特征:封装、继承、多态

封装在前面说过了

继承:继承是指一个类可以继承另一个类(成为父类)的全部成员变量和方法,并进行扩展,重写父类的方法,或添加新的成员方法和变量。

多态:多态是指将子类转为父类不需要显示的c#教程类型转换,被转为父类的对象仍然可以执行真正子类的重载方法。

所有C#类都是从System.Object派生出来的。

namespace ConsoleApp1
{//定义一个Enemy的基类public class Enemy{//构造函数public Enemy(){Console.WriteLine("enemy construtor");}//virtual表示该方法为虚方法&#xff0c;可以被子类重写public virtual void UpdateAI(){Console.WriteLine("update enemy ai");}}//派生类Boss继承自基类Enemypublic class Boss : Enemy{//构造函数public Boss(){Console.WriteLine("boss constructor");}//使用override关键词重写虚方法//当子类被转为父类时&#xff0c;重写的虚方法依然能正确执行public override void UpdateAI(){Console.WriteLine("update boss ai");}}class Program{static void Main(string[] args){Enemy[] enemies &#61; new Enemy[2];//创建数组&#xff0c;包括两个Enemy基类enemies[0] &#61; new Enemy();//创建一个Enemy&#xff0c;执行Enemy的构造函数enemies[1] &#61; new Boss();//创建一个Boss,先执行Enemy的构造函数&#xff0c;再执行Boss的构造函数for(int i &#61; 0; i < 2; i&#43;&#43;){//enemies[0]的类型是Enemy,会调用Enemy类的UpdateAI//enemies[1]的类型是Enemy,但它实际上是Boss//多态的原因&#xff0c;enemies[1]任然会调用Boss类的UpdateAIenemies[i].UpdateAI();}Console.ReadKey();}}
}

在这里插入图片描述


推荐阅读
author-avatar
小dej_531
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有