什么是面向对象?什么是面向过程?
面向对象的三大特性:封装、继承、多态。
封装是指:对面向过程的封装,比如说数值比较,在面向对象中它就是一个 封装后的compare() 方法,compare()方法过程的实现就是面向过程。
优点:
1、对于调用对象者无需知道封装内容的依赖,只与对象依赖,降低耦合度。
2、提高代码阅读性、可重复利用性和降低代码复杂性。
3、可使用访问修饰符对内容保护不被其他类篡改。
继承是指:一个类成为了另一个类的子类,就拥有父类的成员变量和方法。
优点:
1、降低类与类之间代码的重复性。
2、重写方法可增加子类的功能
多态是指:是指一个行为有多种不同的表现方式。形成条件:当父类引用指向子类并且子类重写方法时。
优点:
1、灵活切换表现方式。
2、可扩展多个表现方式。
什么是抽象,什么是对象?
比如人是一个动物,动物在未具体到某一个动物的时候就是一个抽象的概念。人在未具体到某一个人的时候也是抽象的概念,而具体到某一个人就是对象。所以抽象就是一个模板用Interface或Class表示,对象就是模板的生产者用Object表示。
接口和抽象类的区别:接口所有方法都是public且无法实现。例如动物会走,走就可以是一个run()方法。而实现接口的类就要实现run()方法,比如人会动,猪会动可分为两类高级动物和低级动物,可以用两个抽象类实现这个接口表示并实现run()方法,高级动物抽象类使用站立行走,而低级动物抽象类使用爬行行走。然后人类、猩猩继承高级动物抽象类,鸡鸭继承低级动物类。所以抽象类比接口更加抽象。