1.面向对象的三大特点:
封装、继承、多态。
2.
字段:存储数据,访问修饰符设置为privae;
属性:保护字段。对字段的取值和赋值进行限定。
调用构造函数对每个属性赋值的过程称为对象初始化。
new 关键字:1.在堆中开辟内存空间,2.在开辟的内存空间中创建对象、3,调用对象的构造函数初始化对象。
字段保护的三种方法:
1.通过属性中的get;set设置;在构造函数中先判断在给属性赋值来实现保护作用。
return的作用:
1.立即结束本方法;2.在方法中返回要返回的值。
this的作用:
1.代表当前对象
2.在类中显示的调用构造函数。
继承:
继承解决了代码冗余,实现多态,增强了代码的扩展性,便于维护。
继承的特点:
1.单根性
2.传递性
子类中并没有继承父类的构造函数,子类在创建对象时,在子类对象中创建了父类的对象,故需要调用父类的构造函数来初始化对象,若父类中声明了有参数的构造函数,则子类创建对象时,不能创建成功,因为在创建过程中,不能调到父类中无参数的构造函数;解决办法:
1.在父类中显示的声明无参数的构造函数。
2.在子类中调用父类的构造函数,是用base()关键字。
如果一个子类继承了一个父类,那么这个子类除了可以使用自己的成员外,还可以使用从父类那里继承过来的成员,但是父类永远都只能使用自己的成员,而不能使用子类的成员,子类之间也不能相互使用对方的成员。
里氏转换:
1.子类可以赋值给父类
2.父类中包含子类,则父类可以强制转换成子类。
bool b = A is B .若A能转换成B,则b= true;否则b = false;
B b = A as B 若A能转换成B ,则返回B类型,否则转换不成功。
多态:
实现多态的三种方法:
1.虚方法
如果父类知道如何实现,并且方法知道如何写。此时用虚方法可以实现多态。
2.抽象类
如果父类不知道如何实现,且方法不知道怎么写,则用抽象类来实现。
3.接口