{
private static string name;
public static string Name
{
get { return name; }
set { name = value; }
}
//静态方法
public static void SayHi()
{
//静态方法里面不能直接调用实例成员
Console.WriteLine("我是"+name);
}
//实例方法
public void Test()
{
//实例方法中可以调用静态方法
SayHi();
}
}
{
//静态方法调用 类名.方法
Student.SayHi();
//实例方法只能实例化之后调用 并且也没法调用静态方法
Student stu = new Student();
stu.Test();
}
4 多态:
不同的对象调用同一个方法 做出的行为是不一样的
多态就是指不同对象收到相同消息时,会产生不同行为,同一个类在不同的场合下表现出不同的行为特征
多态的作用:把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化。
里氏替换原则: 父类引用指向子类的对象 父类对象不能够替换子类
关键字 is as
//让父类引用指向子类对象
if (p2 is Student)//判断p2是否为student类型
{
Console.WriteLine("学生");
}
Student s = p2 as Student;//as 类型转换 只能转换引用类型 将p2转换为student类型
Student s2 = p3 as Student;//这样转换会出错 因为P3是基于teacher类型 s2会为null
if (s2!=null)//防止报错
{
s2.SayHello();
}