Modern C#系列课程(3): 现代面向对象的程序设计
OOP面向对象程序、OOA面向对象分析、OO面向对象设计
面向对象(OO)的三个特性:封装、继承、多态
封装:
实现方法——访问限制修饰符
public 无限制,允许任何人来访问
protected internal = protected + internal
Internal 允许项目或程序内部的类来访问
protected 继承时子类可以对基类有完全访问权
private 只允许同一个类中的成员访问
继承是“is a”的关系,注意重载OverLoad和重写Override的区别。
多态:
编译时的多态性
编译时的多态性是通过重载来实现的。对于非虚的成员来说,系统在编译时,根据传递的参数、返回的类型等信息决定实现何种操作。
运行时的多态性
运行时的多态性就是指直到系统运行时,才根据实际情况决定实现何种操作。
C#中,运行时的多态性通过覆写虚成员实现。
里面讲到了Object object = new Object()的过程底层实现:
Object object:在栈中建立一个空对象的引用。
New:在堆中分配一个内存空间,用于保存对象,并把首地址保存在栈中。这样堆和栈建立了关系。
Object():调用对象的构造函数进行初始化工作。