封装

概述:

隐藏对象的属性和实现细节,仅对外提供公共的访问方式。对属性的赋值和获取都提供公共的 setxxx   getxxx 方法来操作,属性本身是私有的。

好处:

封装后可以多处调用,提高代码复用性。隐藏了细节,控制访问提高安全性。

原则:

把不需要对外提供的内容都隐藏起来。把属性隐藏,提供公共的方法对外访问。


继承

概述:

多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只需继承那个类即可。通过extends关键字实现。基本格式:class 子类名 extends 父类名{ }

被继承的类成为父类,基类或超类,继承别人的这个类称为子类或者派生类。

好处:

1 提高了代码的复用性

2 提高了代码的维护性

3 让类与类之间产生了关系,是多态的前提

弊端:

类与类之间的耦合性增强。

特点:

只支持单继承,但可以多层继承。不能继承构造方法,但可以通过super访问父类的构造方法。

使用场景:当两者关系是  ‘is a’ 的时候,考虑用继承。就是当a is a b的时候,用a去继承b。


多态

概述:

某一个事物,在不同的时刻表现出来的不同状态。比如:水的固态  液态  气态

前提和体现:

1 有继承关系

2 有方法重写

3 有父类引用指向子类对象

好处:

1 提高了代码的维护性(其实由继承保证)

2 提高了代码的扩展性(由于有方法覆盖现象,所以父类的类型可以是任意子类状态,可以调用对应子类的方法)

弊端:

不能使用子类的特有功能