博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
封装继承多态性
阅读量:5302 次
发布时间:2019-06-14

本文共 1384 字,大约阅读时间需要 4 分钟。

封装:它的意义在于防止代码被恶意篡改

它提供了许多访问修饰符来保证封装:

public 访问无限制

protected 只能在本类和派生类中访问

private 只能在本类中访问

internal 只有同一个项目中的类可以访问

继承:一个类继承另一个类,子类可以访问父类中的属性和方法,除非父类的访问权限不允许

多态性:分为重载和覆盖两种。重载是函数名和一致,参数不一致,返回类型可以不一致,覆盖是函数名一致,但方法体不一致,例如虚函数和抽象类

 

虚函数:父类中定义允许派生类重写的方法,用Virtual关键字定义,且必须给出方法体

public class Animal {      public virtual void EatFood()        {            Console.WriteLine("Animal吃东西");        } }public class cat : Animal{        public override void EatFood()        {            Console.WriteLine("Cat吃东西");            //base.EatFood();        }}
虚方法

 

抽象方法:在父类中定义子类必须实现的方法,用abstract关键字定义,且必须没有方法体

public abstract class Animal//含有抽象方法的类必须是abstract    {        public abstract void eat();    }    public class cat  : Animal    {        public override void eat()        {            Console.WriteLine("catl重写的抽象方法");        }     }
抽象方法

隐藏方法:在派生类中定义和父类中同名的方法,父类中的方法既可以是虚方法也可以不是,使用new关键字来定义

public class animal{        public void Sleep()        {            Console.WriteLine("Animal Sleep");        } }public class cat : animal{            //则在派生类Cat中定义隐藏方法的代码为:        new public void Sleep()        {            Console.WriteLine("Cat Sleep");        }}
隐藏方法

 

 

抽象方法和虚方法的区别

1.抽象方法不能提供方法体,在派生类中必须强制重写该方法,虚方法必须提供了方法体,在派生类中可以不覆盖该方法。

2.包含抽象方法的类必须是抽象类,且不能实例化,包含虚方法的类可以实例化。

 

参考博客地址:http://www.cnblogs.com/zhangkai2237/archive/2012/12/20/2826734.html

转载于:https://www.cnblogs.com/runninglzw/p/4435707.html

你可能感兴趣的文章
jsp分页完善版
查看>>
Android开发之修改Manifest中meta-data的数据
查看>>
【清北前紧急补课5】辣鸡奶酪
查看>>
Scala学习笔记——函数式对象
查看>>
linux—上传,下载本地文件到服务器
查看>>
大型网站后台架构的Web Server与缓存
查看>>
一步一步学Silverlight 2系列(21):如何在Silverlight中调用JavaScript
查看>>
python 通过句柄获取窗口内容
查看>>
[SharePoint 2010] Javascript Client Object Model 在SharePoint2010中的使用方法
查看>>
jq的“钉”插件--jquery.pin.js
查看>>
尼姆博弈
查看>>
水晶报表升级遇到的问题
查看>>
手动方式安装 eclipse 的svn插件 Subversive和 Subversive SVN Connectors
查看>>
关于HTML+CSS设置图片居中的方法
查看>>
java8安装/elasticsearch安装及运行失败原因分析
查看>>
JavaScript slice() 方法
查看>>
是时候拥有一个你自己的命令行工具了
查看>>
常用模块 - configparse模块
查看>>
磁盘配额quota
查看>>
navicat premium连接Oracle几个步骤
查看>>