zoukankan      html  css  js  c++  java
  • c# 之继承、封装、多态

    虽然理解了继承和封装,但是多态总是忘记其定义,很容易被忽略,通过这一次的查找资料和总结能帮助自己更好的理解

    1/多态的概念:

        同一操作作用于不通过的对象,可以有不同的解释,产生不同的执行结果,这就是多态性。

    2/多态需要了解的其他概念:重载、重写、虚方法、抽象方法以及隐藏方法。

         隐藏方法:

    public abstract class Biology
            {
                public abstract void Live();
            }
            public class Animal : Biology
            {
                public override void Live()
                {
                    Console.WriteLine("Animal重写的Live");
                    //throw new NotImplementedException();
                }
                public void Sleep()
                {
                    Console.WriteLine("Animal Sleep");
                }
                public int Sleep(int time)
                {
                    Console.WriteLine("Animal在{0}点Sleep", time);
                    return time;
                }
                public virtual void EatFood()
                {
                    Console.WriteLine("Animal EatFood");
                }
            }
            public class Cat : Animal
            {
                public override void EatFood()
                {
                    Console.WriteLine("Cat EatFood");
                    //base.EatFood();
                }
                new public void Sleep()
                {
                    Console.WriteLine("Cat Sleep");
                }
                //public new void Sleep()
                //{
                //    Console.WriteLine("Cat Sleep");
                //}
            }

    运行:

    Animal animal = new Cat();
    animal.Sleep();
    animal.EatFood();

    得到的结果是

    Animal Sleep

    Cat EatFood

    (1)隐藏方法不但可以隐藏基类中的虚方法,而且也可以隐藏基类中的非虚方法。
    (2)隐藏方法中父类的实例调用父类的方法,子类的实例调用子类的方法。
    (3)和上一条对比:重写方法中子类的变量调用子类重写的方法,父类的变量要看这个父类引用的是子类的实例还是本身的实例,如果引用的是父类的实例那么调用基类的方法,如果引用的是派生类的实例则调用派生类的方法。
  • 相关阅读:
    初次使用树莓派并启用root管理员(登录root管理员)
    windows安装laravel框架
    树莓派Raspbian Root密码是多少?
    树莓派学习笔记(1)解决用putty连接时出现connection refused的办法
    linux 根据端口kill掉进程
    swoole入门
    linux环境安装redis及扩展
    linux 命令
    linux 配置域名到指定目录
    微信公众号开发遇到的问题
  • 原文地址:https://www.cnblogs.com/zmztya/p/7086239.html
Copyright © 2011-2022 走看看