封装 继承 多态 抽象 拷贝

面向对象“四大特性 ” :

封装、继承、多态、“抽象 ”

封装

功能内聚 降低耦合度

以什么样的方式暴露哪些信息

对属性、数据、部分内部敏感行为实现隐藏

设计模式七大原则之一的迪米特法则就是对于封装的具体要求,即 A 模块使用

B 模块的某个接口行为,对 B 模块中除此行为之外的其他信息知道得尽可能少。

在不知道什么样的访问控制权限合适的时候,优先推荐使用 private控制级别。

继承
复用性

基础模块可以被直接复用、间接复用或增强复用

继承是 is-a 关系,那么如何衡量当前的继承关系是否满足 is-a 关系呢?

判断标准即是否符合里氏代换原则( Liskov Substitution Principle, LSP )。 LSP 是指
任何父类能够出现的地方,子类都能够出现

继承滥用的危害性 :

1方法污染

方法污染是指父类具备的行为 , 通过继承传递给子类,子类并不具备执行此行为
的能力 ,比如鸟会飞,驼鸟继承鸟 , 发现飞不了,这就是方法污染。

2方法爆炸
指继承树不断扩大,底层类拥有的方
法虽然都能够执行,但是由于方法众多,其中部分方法并非与当前类的功能定位相关,

提倡组合优先原则来扩展类的能力,即优先采用组合或聚合的类关系来复用其他类的能力,而不是继承。

多态

扩展性

override” 和 、overload'’ ,

“override” 译成 “覆写 ”, 是子类实现接口 , 或者继承父类时 , 保持方法签名完全相同,实现不同的方法体

“overload”译成“重载”,方法名称是相同的,但是参数类型或参数个数是不相同的

多态专指覆写

抽象
归纳和演绎。

找到属性和行为的共性

归纳

从具体到本质,从个性到共性

需要抽象出对象的属性和行为的共性,难度大于演绎

演绎

从本质到具体,从共性到个性,逐步形象化

浅拷贝只复制当前对象的所有基本数据类型,以及相应的引用变量 与原对象共享 引用变量所指向的堆中对象

深拷贝: 与母对象不存在共享的实例变量

实现深拷贝 需要重写 clone方法

面向对象编程思想把所有的有形或无形的事物都看作对象,并给对象赋予相应的属性和行为 , 建立对象之间的联系

JRE( Java Runtime Environment ) 即 Java运行环境 , 包括 JVM、核心类库、核
心配置工具等。其中 JVM( Java Virtual Machine )即 Java 虚拟机 , 它 是 整个 Java 体
系的底层支撑平台, 把源文件编译成平台无关的字节码文件, 屏蔽了 Javaj原代码与
具体平台相关的信息 , 所以 Java 源代码不需要额外修改即可跨平台 运 行。

发布了84 篇原创文章 · 获赞 6 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/csdn_9527666/article/details/105220003