封装继承多态性


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

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

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

优质内容筛选与推荐>>
1、php 一维数组排序,保留key值
2、oracle:10g下载地址(转载)
3、大小端,memcpy和构造函数
4、关于把字符串整数转换成整数的程序
5、快速配置vim+ctags+taglist


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号





    联系我们

    欢迎来到TinyMind。

    关于TinyMind的内容或商务合作、网站建议,举报不良信息等均可联系我们。

    TinyMind客服邮箱:support@tinymind.net.cn