c#基础--类声明与继承中的访问总结

公有和静态

当类声明的时候,自身的字段,方法无论是私有的,还是公开的,又或者是静态的,类自身都可以直接用(无需new):

 class Test
    {
       private int a;
       public  string str;
       private void AA(){ }
        
        public void CC() { }
       static void TT() { }
        public static void YY() { }
        void BB()
        {
            a = 10;
            str = "test";
            AA();//私有方法
            CC();//公有方法
            TT();//私有静态方法
            YY();//公有静态方法
        }
    }

也就是说权限仅仅是对于其他类,这个其他类即包括没有任何关系的类,也包括继承子类。

当有子类继承于Test的时候,子类能访问的就是父类的公有字段和公有方法(无需new):

class Child:Test
    {
        void DD()
        {
            str = "child";//可访问公有
            CC();
            // TT(); //不能访问私有静态
            YY();//直接访问公有静态
        }
    }

总结起来: ①自身或者有继承关系,都不需new,也不需要带类名,直接能使用字段或者方法,自身无视任何修饰符,可以说没有限制。

②继承关系只能访问公有修饰符,但它忽视静态,不需new,也不需要带类名。它限制父类的私有成员无法访问。

③完全无关的类要访问,只能访问公有,还需要区分是否静态来决定要不要new,要不要带类名。限制最多。

类声明中创建类自身

另外类声明的时候,也可以创建类自身的对象:
在这里插入图片描述
哪怕是new出的自己,也要符合对象的权限,此时对象就只能访问非静态的成员(无论公私有),无法访问TT和YY 方法。
语法上是可行的,只不过实际中没什么用处,还容易陷入思维怪圈,无限迭代,自己把自己弄糊涂。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值