面向对象
1.类:众多对象抽象出来的
2.对象:类实例化出来的
3.类的定义
关键字 class
4.类里面包含
成员变量
成员属性
成员方法
5.面向对象 三大特性
(1)封装
目的:保护类,让类更加安全。
做法:让类里面的成员变量变为私有的,做相应的方法或者属性去间接的操作成员变量
封装成员方法来间接操作类里面的成员变量
使用成员属性来间接访问类里面的成员变量
访问修饰符
private 私有的 只能在该类中访问
protected 受保护的 只能在该类和它的子类中访问
public 公有的 在任何地方都可以访问
构造方法(函数):
作用:造对象所要调用的方法,用来创建对象,可以对成员进行初始化
每一个类都有一个构造方法,不写也有只不过看不到而已
特殊性:写法特殊 执行时间特殊
this关键字:
this代表该对象,不是代表该类
(2)继承:
概念:子类可以继承父类的一切
特点:单继承 一个子类只能有一个父类,一个父类可以有多个子类 (所有父类都是object)
base关键字
sealed关键字:密封类 该类不可以被继承
部分类:partial 可以将一个类拆分成多个部分,分别放在多个文件内
namespace 命名空间 相当于虚拟文件夹
(3)多态:
1.编译多态
函数重载
2.运行多态
概念:当父类引用指向子类实例的时候,由于子类对父类的方法进行了重写,在调用该方法的时候表现出的不同就称为多态
条件:必须要有继承 父类引用指向子类实例 子类必须对父类的方法进重写
里氏代换原则:如果有一个地方需要使用到父类对象,那么你可以将一个子类对象给他
1.函数重载
函数重载需要的条件:函数名要相同,参数的个数或者参数的类型不同
2.this关键字
虽然写在类里面,但不是属于类的,而是属于该对象的
一般来说在类里面 this关键字是可以省略的,但是如果有一个方法形参名字和成员名字重复,这时候再调用该对象里面的成员的时候需要加this关键字
3. is关键字
判断变量是不是属于某个类型
if (y2 is Ren) { s = "是一个人"; } else { s = "不是一个人"; }