面对对象三大特性
1.封装
隐藏内部实现,稳定外部接口
2.继承
子类继承父类成员,实现代码复用
3.多态
不同子类对同一个消息作出不同的反映
类与对象
类是一个概念
对象是实体
类是对象的原型
访问修饰符
属性 | 描述 | 备注 |
---|---|---|
public | 所属类的成员以及非所属类的成员都可以访问 | 无 |
internal | 当前程序集可以访问 | 无 |
private | 只有所属类的成员才能访问 | 无 |
protected | 所属类或派生类自所属类的类型可以访问 | 无 |
构造函数
一个特殊函数,每个类都必须有一个构造函数,用户不提供系统会提供自己默认的构造函数,默认的构造函数访问权限是private,不能在类的外部创建实例。构造函数有无参构造函数和带参构造函数,创建了带参构造函数,系统不会再创建默认构造函数
特点:
1、方法名称与类名相同
2、方法没有返回值
3、方法自动运行,无需显示调用
目的:
给字段赋初始值
静态变量 vs 成员变量
描述 | 静态方法 | 实例方法 |
---|---|---|
关键字 | 使用static关键字 | 不使用static关键字 |
调用方式 | 使用类名调用 | 使用实例对象调用 |
访问方式 | 可以直接访问静态成员 | 使用类名访问静态成员 |
1.使用角度
静态变量通过类名访问,成员变量通过实例对象访问。
2.用途角度
静态变量(一般也叫全局变量)更多的是对整个项目去做配置或者是记录,成员变量记录对象本身的状态
总结.png
继承
1.定义继承关系,使用“:”,子类可以继承父类字段和方法
2.方法覆盖:当父类与子类定义了完全相同的方法,子类的方法会覆盖父类,叫“方法覆盖(方法隐藏)”
this和base关键字不能在静态方法中使用
base调用父类的方法,this调用子类的方法
继承中构造函数的应用
子类的构造方法
要调用父类的构造函数,使用关键字base,先调用父类的构造函数,再调用子类的构造函数,子类的构造方法与类的名称相同
父子继承关系中,在实例化对象时,首先调用父类再调用子类
派生类的构造函数在执行初始化时,最好调用基类的构造函数
EG:public Student(string s):base(){} //显示调用父类构造函数
网友评论