• 感性的面向对象


    规则
    1.密封类不可以被继承。
    2.继承关系中,我们更多的是关注其共性而不是特性,因为共性是层次复用的基础,
    而特性是系统扩展的基点。
    3.实现单继承,接口多继承。
    4.从宏观来看,继承多关注于共通性;而多态着眼于差异性。
    5.继承的层次应该有所控制,否则类型之间的关系维护会消耗更多的精力。
    6.面向对象的基本原则:多聚合,少继承;低耦合,高内聚。

    继承:类与类之间的关系。
    总结:所有的类型都最终继承自共同的根System.Object类。一切皆为对象,一切皆于继承。
    例子:

    定义一个Bird类和一个Chicken类,调用时Bird b = new Chicken();
    b.type 值是"Bird",而b.showtype的值是 "Type is Chicken"
    这时使用new 隐藏了基类实现,也就是创建了一个同名的另一个方法,在编译中这两个方法处于
    动态方法表的不同地址位置,父类方法排在前面,子类方法排在后面(调用时,先父类再子类);
    实现继承(通常表现为对抽象类的继承)和接口继承:
    (1)抽象类适合于有族层概念的类间关系,而接口最适合为不同的类提供通用功能。
    (2)接口着重于CAN-DO关系类型,而抽象类则偏重于IS-A式的关系。
    (3)接口多定义对象的行为;抽象类多定义对象的属性。
    (4)版本问题时使用抽象类来实现。
    (5)因为值类型是密封的,所以只能实现接口,而不能继承类。
    类的模式以继承方式来实现,
    对象的模式以聚合方式完成。
    继承:class1 ->class2,耦合度高(一个更改对另一个影响程度高)。
    聚合:聚合关系是一种(HAS-A式)的关系,耦合度没有继承关系高。
    (1)class1 - class2(无聚合)
    (2)class1 -+ class2(共享,class1共享给class2,class1更改影响class2,反之,不影响)
    (3)class1 -= class2(复合,即都共享)

    封装:隐藏了类内部的具体实现细节,对外则提供统一访问接口,来操作内部数据成员。
    结论:封装就是一个包装,将包装的内外分为两个空间,对内实现数据私有,对外实现方法调用,
    保证了数据的完整性和安全性。
    使用IL反编译器(ildasm)查看字段,属性和方法
    可以通过属性get和set访问器来实现其读写控制(可以在set里写判断,以达到控制输入的作用)。

    多态:提供了对同一个类对象的差异化处理方式,实现了对变化和共性的有效封装和继承,
    体现了“一个接口,多种方法”的思想,使方法抽象机制成为可能。(继承和重载是多态的实现基础)
    多态:分为四类:强制的,重载的,参数的和包含的。
    包含的多态:
    (1)基类继承式多态:关键是继承体系的设计与实现。
    Files myFile = new WORDFile();
    myFile.Open();
    (2)接口实现式多态:通过实现接口的方法约定形成继承体系。
    IFileOpen myFile = new WORDFile();
    myFile.Open();
    多态的运行机制:.Net的动态绑定机制成就了面向对象的多态特性。
    动态绑定,又叫晚期绑定,是区别与静态绑定而言的。
    静态绑定在编译期就可以确定关联,一般是以方法重载来实现的;
    (所有的.NET源文件都首先被编译成IL代码和元数据,在方法执行时,
    IL代码才被JIT编译器即时转换为本地CPU指令。JIT编译发生于运行时,
    因此不存在完全在编译期建立的关联关系。)
    动态绑定在运行期通过检查虚拟方法表来确定动态关联覆写的方法,一般以继承和虚方法来实现。

    面向对象人性化的提升了代码的安全性,可操作性,使得所有的代码都有规律可循。

  • 相关阅读:
    Python字符串学习
    文本压缩版本三
    文件压缩版本二
    文件压缩(2)
    d17包,logging模块,hashlib模块 openpyxl模块,深浅拷贝
    d16 collections模块 时间模块 random模块 os模块 sys模块 序列化模块 subprocess模块
    d15 常用模块之正则模块
    14天 模块 , 导模块 , 循环导入, 相对,绝对导入, 项目目录规范,
    13t天 迭代器,生成器,内置函数
    55 jquery
  • 原文地址:https://www.cnblogs.com/Aspvn/p/9707721.html
Copyright © 2020-2023  润新知