C#--类之隐藏基类的成员

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication3
{
   public class BaseClass
    {
        /// <summary>
        /// 常量
        /// </summary>
        public const int Number = 10;

        /// <summary>
        /// 属性
        /// </summary>
        public int ID { get; set; }

        /// <summary>
        /// 字段
        /// </summary>
        public string Name;

        /// <summary>
        /// 方法
        /// </summary>
        /// <returns></returns>
        public void SayHello()
        {
            Console.WriteLine("我是无返回类型的方法");
        }

        /// <summary>
        /// 索引
        /// </summary>
        /// <param name="index"></param>
        /// <returns></returns>
        public int this[int index]
        {
            get
            {
                switch (index)
                {
                    case 0:
                        return 0;
                        break;
                    case 1: return 1;
                        break;
                    case 2: return 2;
                        break;
                    case 3: return 3;
                        break;
                    default: return 10000;
                        break;
                }
            }
            set
            {

                switch (index)
                {
                    case 0:
                        ID = value;
                        break;
                    case 1: ID = value;
                        break;
                    case 2: ID = value;
                        break;
                    case 3: ID = value;
                        break;
                    default: ID = value;
                        break;
                }
            }

        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication3
{
    public class MyClass : BaseClass
    {
        /// <summary>
        /// 常量
        /// </summary>
       new public const int Number = 10;

        /// <summary>
        /// 属性
        /// </summary>
       new public int ID { get; set; }

        /// <summary>
        /// 字段
        /// </summary>
        public string Name;

        /// <summary>
        /// 方法
        /// </summary>
        /// <returns></returns>
        public string SayHello()
        {
            string str = "hello";
            return str;
        }

        /// <summary>
        /// 索引
        /// </summary>
        /// <param name="index"></param>
        /// <returns></returns>
        public int this[int index]
        {
            get
            {
                switch (index)
                {
                    case 0:
                        return 0;
                        break;
                    case 1: return 1;
                        break;
                    case 2: return 2;
                        break;
                    case 3: return 3;
                        break;
                    default: return 10000;
                        break;
                }
            }
            set
            {

                switch (index)
                {
                    case 0:
                        ID = value;
                        break;
                    case 1: ID = value;
                        break;
                    case 2: ID = value;
                        break;
                    case 3: ID = value;
                        break;
                    default: ID = value;
                        break;
                }
            }

        }
    }
}

使用new关键字隐藏基类成员

时间: 2024-10-18 08:41:37

C#--类之隐藏基类的成员的相关文章

C# 类中隐藏基类方法和Partial

原文:C# 类中隐藏基类方法和Partial 今天对于.NET开发人员来说最开心的事情莫过于微软搞开源了,这觉得是给搞.NET开发的长脸.虽然我是一个初学者,这无疑给我极大的学习动力.Fighting!!! 当一个类从父类继承了一个成员时,也就继承了它的执行代码,如果成员时虚拟的,我们可以用override重写这段执行代码.但无论他是否是虚拟的,都可以通过new 关键字来隐藏它.例如: public class BaseClass { public void DoSomething() { //

C#继承机制 访问与隐藏基类成员

(1) 访问基类成员 通过base 关键字访问基类的成员:   调用基类上已被其他方法重写的方法.  指定创建派生类实例时应调用的基类构造函数.  基类访问只能在构造函数.实例方法或实例属性访问器中进行. 从静态方法中使用 base 关键字是错误的. 示例:下面程序中基类 Person 和派生类 Employee 都有一个名为 Getinfo 的方法.通过使用 base 关键字,可以从派生类中调用基类上的 Getinfo 方法. using System ;public class Person

【C++】通过基类的指针变量访问派生类中由基类继承来的隐藏对象

//<img src="http://img.blog.csdn.net/20150512213309005?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZG91ZG91d2ExMjM0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /> // 可以将一个派生类的对象的地址赋给其基类的指针变量,但

C#派生类中使用基类protected成员的方法

我们知道C#中通过继承可以使一个具有公共数据和方法的基类被广泛应用从而减少代码量,这样派生类会具有基类中所有成员(除构造器等),我们理所当然可以通过派生类实例来使用基类的成员.那么当基类成员被protected修饰时,我们应该怎么在派生类中使用基类成员呢,下面将介绍使用方法. 首先我们贴一段错误的使用代码: 1 class Program 2 { 3 static void Main(string[] args) 4 { 5 Console.ReadLine(); 6 7 } 8 } 9 pub

再以Circle类为直接基类,派生出一个Cylinder(圆柱体)类,再增加数据成员h(高),,以及求圆柱表面积的成员函数area和求圆柱体积的成员函数volume,实现需要的成员函数,并设计main

/* *Copyright (c) 2016,烟台大学计算机学院 *All rights reserved. *文件名称:main.cpp *作 者:郭辉 *完成时间:2016年5月10日 *版 本 号:v1.0 * *问题描述:再以Circle类为直接基类,派生出一个Cylinder(圆柱体)类,再增加数据成员h(高),,以及求圆柱表面积的成员函数area和求圆柱体积的成员函数volume,实现需要的成员函数,并设计main函数完成测试. *输入描述:无. *程序输出:体积,表面积. */ #

派生类地址比基类地址少4(子类与基类指针强行转换的时候,值居然会发生变化,不知道Delphi BCB是不是也这样) good

大家对虚表并不陌生,都知道每个含有虚函数的类对象都有1个虚指针,但是在现实使用中,却总是因为这而调试半天,才发现原来是虚指针惹的祸.我这几天在调试代码时候也中招了,我的问题是这样的,如下图,CTree是最底层基类(非虚类), CSamplerTree(虚类)派生自CTree,CMSamplerTree,CASamplerTree派生自CSamplerTree,                                                         CTree中包括两个成员

派生类(多级)到基类转换的可访问性

<C++primer>第四版 15.3.1节提到基类到派生类转换(无论ref/poniter or not)的可行性,有些拗口,根据英文版翻译,得到以下几个要点: 1.如果是 public 继承,则用户代码和后代类都可以使用派生类到基类的转换. 2.如果类是使用 private 或 protected继承派生的,则用户代码(即派生类对象)不能将派生类型对象转换为基类对象. 3.如果是 private 继承,则从 private 继承类派生的孙类不能转换为基类. 4.如果是 protected 

【C++】派生类对象初始化基类的引用

//派生类对象初始化基类的引用 //引用是别名,但这个别名只能包含派生类对象中的由基类继承来的隐藏对象 #include <iostream> using namespace std; class B { public: B() { cout<<"B"<<endl; } void fun() { cout<<"B::fun()"<<endl; } private: int x; }; class D : p

修改tt模板让ADO.NET C# POCO Entity Generator With WCF Support 生成的实体类继承自定义基类

折腾几天记载一下,由于项目实际需要,从edmx生成的实体类能自动继承自定义的基类,这个基类不是从edmx文件中添加的Entityobject. 利用ADO.NET C# POCO Entity Generator With WCF Support生成的tt文件(比如model.tt)中找到 partial class partial class 修改tt模板让ADO.NET C# POCO Entity Generator With WCF Support 生成的实体类继承自定义基类