目录
一.封装
封装:把对象的属性和方法结合成一个独立的整体,隐藏实现细节,并提供对外访问的接口。
封装的优点:
1.隐藏实现细节。
2.安全性。
比如你在程序中私有化了age属性,并提供了对外的get和set方法,当外界 使用set方
t方法为属性设值的时候 你可以在set方法里面做个if判断,把值设值在0-80岁,那样他就不能随意赋值了。
3.增加代码复用性。
比如在工具中封装的各种方法,可以任意调用,而不用每处去实现细节。
4。模块化。
封装分为封装属性,方法,类等等。有利于代码调试,相互配合。
二.继承
继承的概念:从已知的一个类中派生出一个新的类,叫子类。子类实现了父类所有非私有化的属性和方法,并根据实际需求扩展出新的行为。
继承的好处:
1.继承是传递的,易于在其基础上构造和扩充。
2.简化对事物的描绘,使得层次更加清晰。
3.减少代码冗余。
4.提高可维护性。
三.多态
多态的概念:多个不同的对象对同一消息作出响应。同一消息根据不同的对象而采用各种不同的方法。
多态类型:
(1)编译时多态(设计时多态):方法重载。
(2)运行时多态:JAVA运行时系统根据调用该方法的实例的类型来决定选择调用哪个方法则被称为运行时多态。(我们平时说得多的事运行时多态,所以多态主要也是指运行时多态)
运行时多态存在的三个必要条件:
- (1)要有继承(包括接口的实现);
- (2)要有重写;
- (3)父类调用子类对象
多态好处:
- 是应用程序不必为每一个派生类编写功能调用,只需要对抽象基类进行处理即可,大大提高了程序的可复用性。
- 二是派生类的功能可以被基类的方法或者引用变量所调用,可以提高扩充性和可维护性。
四、抽象
抽象的概念:通过特定的实例抽取出共同的特征行成概念的过程。
抽象方法:
被abstract修饰的方法是抽象方法。抽象方法没有方法体。修饰符返回类型为 函数名();抽象方法的修饰只能用public或protected或者没有修饰。不能被final,static,private修饰。
抽象与接口的区别:
不同:
1.接口可以多实现,而抽象类只能单继承。
2.抽象类可以具有非抽向的方法和构造方法,变量。但是接口只有抽象方法,静态常量。
3.抽象类和子类有父子关系,子类能拥有父类的一些属性。接口虽然某个类实现一个接口,但由于接口中的变量都为静态常量,不存在继承关系。
相同点:
1.无论接口还是抽象类,都无法被直接实例化,其自身实例化需要靠实现类或者子类实现。
封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是为了——代码重用。而多态除了代码的复用性外,还可以解决项目中紧偶合的问题,提高程序的可扩展性.。耦合度讲的是模块模块之间,代码代码之间的关联度,通过对系统的分析把他分解成一个一个子模块,子模块提供稳定的接口,达到降低系统耦合度的的目的,模块模块之间尽量使用模块接口访问,而不是随意引用其他模块的成员变量。