访问修饰符:(4种)
pubulc:公共的,只要引用了命名空间,就可以随意进行访问
private:私有的,只有当前类内部才可以访问
internal:内部的,当前程序集内可以访问,程序集就是命名空间,此修饰符是默认的
protected:被保护的,当前类和它的子类才可以访问
封装:
基本结构
private int _Ids; -- 私有的成员变量
public int Ids -- 属性,封装基本结构
{
get{ return _Ids; }
set{ _Ids = value; }
}
①一个成员变量可以有很多个属性
②属性返回类型可以是任意类型,不是必须要与成员变量类型相同
③属性可以是只读的,也可以是只写的,也可以两者都有
创建的类:
public class Class1 //创建类
{
private int _id; //成员变量
private string _name;
private DateTime _birthday;
private decimal _score;
public int id
{
get { return _id; }
set
{
if (value > 0)
{
_id = value;
}
else
{
_id = 0;
}
}
}
主函数中:
Class1 cc = new Class1(); //实例化
cc.id = 5;
Console.WriteLine(cc.id);
Console.ReadLine();
继承:
子类可以继承父类所有的public方法和属性
父类不可以调用子类的方法和属性,哪怕是public的
子类可以转换成父类,转换成的这个父类也可以转换回相应子类
子类转换成父类,这个父类不可以转换成其它的子类
Plane这个类是Fly的派生类,
Plane这个类派生自Fly
Fly类:
public class Fly
{
public string Fly1()
{
eturn "我可以飞行!";
}
}
Plane继承于Fly:
public class Plane : Fly
{
public string Name()
{
return "我叫飞机!";
}
}
程序主函数中:
Plane p= new Plane(); //实例化
Console.writeLine( p.Fly1()); //飞机继承于飞行类
Console.ReadLine();
多态:
龙生九子,各有不同
同样都是继承了同一个父类,但是父类中的方法并不使用任何一个子类,那么在这就需要子类重新编写这个方法的主体
1、需要父类同意子类可以重新编写自己的方法
virtual - 虚方法
2、子类只能重写父类允许重写的方法,只能重写虚方法
override - 重写覆盖虚方法
所有的类都可以当做父类,都可以有虚方法
抽象类:abstract
它就是为了被继承而出现的
普通的类中所有的方法都变成虚方法,没有人用最基础的方法,全部都需要重写,那么就不需要那么费劲把普通类中的方法主体都写完,而是,直接定义成抽象类,并且都写成抽象方法。
只声明方法的名称和返回类型,具体方法主体是什么,继承过去以后自己去实现。
抽象方法一定是在抽象类中