感谢大佬指点一二
目录
前言
本文就介绍了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和继承的使用