【C#基础】static和继承

感谢大佬指点一二

目录

前言

1. 静态成员变量

1.实例成员

2.静态成员

2.静态构造函数

3.静态方法

4.静态类

5.static适用性

二、继承

1.继承介绍

总结


前言

本文就介绍了static和继承的基础内容。


一、Static

1. 静态成员变量

               使用static关键字修饰的成员变量
             * 静态成员变量属于类,类加载时被初始化,且只有一份
             * 实例成员变量属于对象,再每个对象被创建时初始化,每一个对象一份
             * 特点:存在优先于对象,被所有对象所共享,常驻内存

1.实例成员

        就是你new之后实例化的对象

        public int InstanceCount;
      例子:Student stu002 = new Student();

2.静态成员

 静态成员:
             * 就是加了static之后的字段public static int StaticCount;

 public int Score { get; set; }
        //每个对象都存储一份  "杯子"
        public int InstanceCount;
        //仅仅存储一份,所有对象共享 "饮水机"
        public static int StaticCount;
        private Random random;
        private int[] arr;
        //实例构造函数:提供创建对象的方式,初始化类的实例数据成员

 

2.静态构造函数


             * 静态构造函数
             * 初始化类的静态数据成员
             * 仅仅在类被加载时执行一次
             * 不允许使用访问修饰符

/静态构造函数
        //作用:初始化类的静态数据成员
        //执行时机:类加载时调用一次

 static Student()//优先级高于对象
        {
         //   InstanceCount++;//非静态字段 要求 对象引用==》静态代码块,只能访问静态成员
            StaticCount++;
        }

3.静态方法

*
             * 静态方法
             * 通过引用调用实例方法时,会隐式的传递对象引用,以便在方法内部可以正确访问该对象成员
             * 变量
             * 
             * 通过类名调用静态方法时,因为没有具体的对象,所以在static方法中不能访问实例成员

            Student.fun2();
            stu003.fun1();//通过引用调用实例方法,都会自动的传递引用(谁调我的)


             

  public void fun1()
        {
            Console.WriteLine(InstanceCount);
        }
        public static void fun2()
        {
            //实例代码块,可以访问实例成员,也可以访问静态成员
           // Console.WriteLine(InstanceCount);
        }

4.静态类

静态类
             * 使用static关键字修饰的类
             * 不能实例化,只能包含静态成员
             * 静态类不能被继承,但是静
             * 态方法、属性都可以被继承
             */ 

这种适用做公有的工具类

5.static适用性

            利:单独空间存储,所有对象共享,可直接被类名调用
            弊:静态方法中能访问静态成员,共享数据被多个对象访问会出现并发
            适用场合:
            1.所有对象需要共享的数据
            2.在没有对象前就要访问成员
            3.工具类适合做静态类(常用,不需要过多数据) 

二、继承

1.继承介绍

我们建立了三个类,Person,Student,Teacher

 

语法 ---》      class    类名:你需要继承类名 

  class Teacher:Person
    {
       
        public int Salary { get; set; }
    }
  class Person
    {
       
        
        public string Name { get; set; }
        private int a;//可以继承但是不能用

        //只想让自己和孩子用  可以使用protected
        //仅仅本“家族”使用
        protected int b;
      
  

    }

这样 之后就会继承父类里面的东西,私有除外(继承了但是用不了)

例如

 //子类 可以使用  父类成员
            Student stu01 = new Student();
            stu01.Name = "";

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了static和继承的使用

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值