这个是个基础知识了,就想入门口诀一样
特性
面向对象的三大特性:
封装、继承、多态
面向对象的四大特性:
封装、继承、多态、抽象
其实这里很有意思,如果说面向对象的三大特性,那么就没有抽象;四大特性就有抽象
然后对特性进行描述:
抽象
抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽 象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么
封装
封装把一个对象的属性私有化,同时提供一些可以被外界访问的属性的方法,如果属性不想被外界 访问,我们大可不必提供方法给外界访问。但是如果一个类没有提供给外界访问的方法,那么这个 类也没有什么意义了
继承
继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。通过使用继承我们能够非常方便地复用以前的代码
多态
父类或接口定义的引用变量可以指向子类或具体实现类的实例对象。提高了程序的拓展性。 在Java中有两种形式可以实现多态:继承(多个子类对同一方法的重写)和接口(实现接口并覆盖接口中同一方法)
实现多态的必要条件
-
继承
在多态中必须存在有继承关系的子类和父类 -
重写
子类对父类中某些方法进行重新定义,在调用这些方法时就会调用子类的方法 -
向上转型
在多态中需要将子类的引用赋给父类对象,只有这样该引用才能够具备技能调用 父类的方法和子类的方法扫描二维码关注公众号,回复: 16899967 查看本文章
基本原则
这里的原则和设计模式里面的原则概念相同
- 单一职责原则SRP
类的功能要单一,不能包罗万象,使得杂乱无章
- 开放封闭原则OCP
一个模块对于拓展是开放的,对于修改是封闭的
- 里式替换原则LSP
子类可以替换父类,完美的继承基类
- 依赖倒置原则DIP
高层次的模块不应该依赖于低层次的模块,他们都应该依赖于抽象。抽象不应该依赖于具体实现,具体实现应该依赖于抽象
- 接口分离原则ISP
设计时采用多个与特定客户类有关的接口比采用一个通用的接口要好,业务分离
- 迪米特法则DP
一个对象应当对其他对象有尽可能少地了解,简称类间解耦
原则可以看另一篇 设计模式的六大原则