• 封装继承多态性


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

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

    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

  • 相关阅读:
    laravel-admin 关闭debug模式导致异常信息到页面的排查
    laravel-sql
    laravel任务调度出现僵尸进程
    PHP获取首字母笔记
    IP库笔记
    深入理解 js 闭包
    用键盘实现上下选择
    密码保护
    评分效果
    数组去重
  • 原文地址:https://www.cnblogs.com/runninglzw/p/4435707.html
Copyright © 2020-2023  润新知