封装
概述:
隐藏对象的属性和实现细节,仅对外提供公共的访问方式。对属性的赋值和获取都提供公共的 setxxx getxxx 方法来操作,属性本身是私有的。
好处:
封装后可以多处调用,提高代码复用性。隐藏了细节,控制访问提高安全性。
原则:
把不需要对外提供的内容都隐藏起来。把属性隐藏,提供公共的方法对外访问。
继承
概述:
多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只需继承那个类即可。通过extends关键字实现。基本格式:class 子类名 extends 父类名{ }
被继承的类成为父类,基类或超类,继承别人的这个类称为子类或者派生类。
好处:
1 提高了代码的复用性
2 提高了代码的维护性
3 让类与类之间产生了关系,是多态的前提
弊端:
类与类之间的耦合性增强。
特点:
只支持单继承,但可以多层继承。不能继承构造方法,但可以通过super访问父类的构造方法。
使用场景:当两者关系是 ‘is a’ 的时候,考虑用继承。就是当a is a b的时候,用a去继承b。
多态
概述:
某一个事物,在不同的时刻表现出来的不同状态。比如:水的固态 液态 气态
前提和体现:
1 有继承关系
2 有方法重写
3 有父类引用指向子类对象
好处:
1 提高了代码的维护性(其实由继承保证)
2 提高了代码的扩展性(由于有方法覆盖现象,所以父类的类型可以是任意子类状态,可以调用对应子类的方法)
弊端:
不能使用子类的特有功能