zoukankan      html  css  js  c++  java
  • 小知识(四):继承

    方法重写:

        基类方法标识virtual关键字,子类(继承类)中方法重写标识override关键字。

        重写的方法必须跟基类的类型相同,如方法名称、返回和接受参数。

        public class Class1

        {

            public virtual void show(int i)

            {……}

        }

        public class Class2:Class1

        {

            public override void show(int a)

            {……}

        }

    New方法重写:

        public class Class1

        {

            protected virtual void show(int i)

            {……}

        }

        public class Class2:Class1

        {

            public new int show(int a)

            {……}

        }

        new声明定义自己的同名方法。返回类型、访问类型可以不同于基类的同名方法。

        如果接受参数不同于基类同名方法时new关键字会多余,相当于一般重写(基类没有一样的方法,没有一样的隐藏方法)。

    override重写基类方法(隐藏方法)的方法体,new重写基类同名方法(接收参数一样)。

    终止继承:

        终止继承标识sealed。以下代码编译出错,Class2无法继承封闭类Class1

        public sealed class Class1

        {

            public virtual void show(int i)

            {……}

        }

        //public class Class2:Class1

        //{

        //    public override void show(int a)

        //    {……}

        //}

    调用基类构造函数:

        编译器先调用基类构造函数,再调用继承类构造函数。

        public class Class1

        {

            public Class1(int i , string j)

            {……}

        }

        public class Class2:Class1

        {

            public Class2(int i,string j,object obj):base(i,j)

            {……}

        }

    将来的你,一定会感谢现在拼命努力的你!
  • 相关阅读:
    【C++缺省函数】 空类默认产生的6个类成员函数
    iOS 关于 UIKit 专栏应该写在最前面的话
    openssl之EVP系列之8---EVP_Digest系列函数具体解释
    二进制中1的个数
    UVA 548(二叉树重建与遍历)
    Leetcode Best Time to Buy and Sell Stock III
    javascript new Date()函数在不同浏览器上返回不同的值
    【网络流】 HDU 3468 Treasure Hunting
    树莓派玩耍笔记1 -- 开箱 & 安装系统以及简单配置
    POJ 1195 Mobile phones (二维树状数组)
  • 原文地址:https://www.cnblogs.com/hugjil/p/6266680.html
Copyright © 2011-2022 走看看