一:访问修饰符
pubulc:公共的,只要引用了命名空间,就可以随意进行访问
private:私有的,只有当前类内部才可以访问
internal:内部的,当前程序集内可以访问,程序集就是命名空间,此修饰符是默认的
protected:被保护的,当前类和它的子类才可以访问
二:命名空间:
也叫程序集,项目中每一个文件夹都是一个独立的命名空间。
如果要使用某一个命名空间下的类文件,那么必须首先引用此命名空间。
三:封装
打包,封起来,保护起来
基本格式:
private int _Ids; - 私有的成员变量
public int Ids - 属性,封装基本结构
{
get{ return _Ids; }
set{ _Ids = value; }
}
一个成员变量可以有很多个属性
属性返回类型可以是任意类型,不是必须要与成员变量类型相同
属性可以是只读的,也可以是只写的,也可以两者都有
四:继承
子类可以继承父类所有的public方法和属性
父类不可以调用子类的方法和属性,哪怕是public的
子类可以转换成父类,转换成的这个父类也可以转换回相应子类
子类转换成父类,这个父类不可以转换成其它的子类
例:
public class bird:fly
{
public override string flying()
{
return "我可以飞到参天大树上去!";
}
这即是bird这个子类是态生于fly这个父类。
五:多态
正所谓龙生九子,各有不同,继承了同一个父类的各个子类之间也是各有不同的。同样都是继承了同一个父类,
但是父类中的方法并不使用任何一个子类,那么在这就需要子类重新编写这个方法的主体。
重新编写方法:
1、需要父类同意子类可以重新编写自己的方法
virtual - 虚方法
2、子类只能重写父类允许重写的方法,只能重写虚方法
override - 重写覆盖虚方法
例:
父类中的写法:
public class fly
{
public virtual string flying()
{
return "我能飞的更高!!";
}
子类中的写法:
public class plane:fly
{
public override string flying()
{
return "我可以飞到白云上去";
}
另外,所有的类都可以当做父类,都可以有虚方法
抽象类方法:abstract
它就是为了被继承而出现的
普通的类中所有的方法都变成虚方法,没有人用最基础的方法,全部都需要重写,那么就不需要那么费劲把普通类中的方法主体都写完,而是,直接定义成抽象类,并且都写成抽象方法。
只声明方法的名称和返回类型,具体方法主体是什么,继承过去以后自己去实现。
抽象方法一定是在抽象类中
有抽象方法的类,一定是抽象类
抽象类中不一定只有抽象方法
接口:interface
就是让类更加完善
干爹
都是抽象方法,不能有一点实在东西,全部内容都需要在子类中进行实现