zoukankan      html  css  js  c++  java
  • c#中的 virtual override 和abstract 以及sealed

    1、如果父类方法没有加virtual关键字,即不是一个虚方法,则在子类中只能隐藏基类方法,而不能覆盖。

    2、如果父类方法加了virtual关键字,即它是一个虚方法,在子类中一样可以隐藏。

    3、如果子类实现了父类相同的方法(相同的方法名称及签名),而没有new,在编译时会报警,但编译仍然能够通过!

    4、调用父类方法:base.方法名() 

    5、abstract类是一个抽象类,不能被实例化

     

    new 和override的区别

    1.override重写虚方法,那么就只剩下重写以后的方法; 
    2.new隐藏基类的方法,那么基类的方法和当前类的方法同时存在只是被隐藏了。new声明的方法,当使用子类的类型来调用的时候,它会运行子类中的函数,而如果类型是基类的话,被隐藏的基类函数就会站到前台来

    3.在子类中new父类中的方法,父类中的方法不一定是虚类型,即virtual。但是在子类中override父类中的方法,父类的方法一定得是虚类型

    sealed密封类有点类似JAVA,php中的final关键字  被sealed修饰的类不能作为父类被继承

  • 相关阅读:
    图的广度优先搜索
    图的深度遍历
    图的邻接表的实现
    求1+2!+3!+...+20!的和。
    CSS用户界面样式
    CSS三角
    CSS字体图标技术
    CSS精灵技术
    CSS元素的显示和隐藏
    CSS定位
  • 原文地址:https://www.cnblogs.com/zhepama/p/4341254.html
Copyright © 2011-2022 走看看