sdlklhd 发表于 2008-8-17 16:46

无法访问protected成员的问题

小弟我刚学C#,近日在protected上迷糊了.代码如下:
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
    class Program:Bank
    {
        static void Main(string[] args)
        {
[color=Red]            CheckBank cb = new CheckBank();
            cb.AddC();//cb无法访问基类的protected AddC()方法.
            Program p = new Program();
            p.AddC();//p就可以访问.[/color]
        }
    }
     class Bank
     {
         protected Bank()
         {
             Console.Write("This is protected constructor.");
             Console.ReadLine();
         }
         protected void AddC()
         {
             Console.WriteLine("afdas");
         }
     }
    class CheckBank:Bank
    {
        
    }

}

小仙 发表于 2008-8-17 18:48

protected受保护的意思,其意思也是近似于私有的,不能通过自类对象访问,父类对象可以访问,在子类中,可以通过base.的方式访问。。你在自己类里面实例自己的对象p...这个方法我还没试过。。好邪恶。这个也行吗?

fjfhnui 发表于 2008-8-17 22:19

啊哥多看看书啊
protected 访问级别是允许其派生类中访问,访问方式base.
你现在是在对象中咋访问啊

liang4571231 发表于 2008-8-18 10:47

派生类
访问方式base.

sdlklhd 发表于 2008-8-22 11:01

不好意思,这几天有事没上来 .
首先对大家的回复表示感谢.
看了大家的回复.关于这个问题还是不明白
1、类program与checkbank都继承了bank,书上说子类继承了父类的方法.
2、(关键)bank的子类program能访问基类的addc()方法,而子类cb就不行了。
请大家指教。

fjfhnui 发表于 2008-8-24 03:29

protected 保护类型,只有在子类,或本类的内部才可以访问。子类和父类的对象都无法访问

sdlklhd 发表于 2008-8-25 09:20

[quote][bo][un]fjfhnui[/un] 在 2008-8-24 03:29 的发言:[/bo]

protected 保护类型,只有在子类,或本类的内部才可以访问。子类和父类的对象都无法访问 [/quote]
简单明了.谢谢.

页: [1]

编程论坛